aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/sound/ac97_codec.h3
-rw-r--r--sound/pci/ac97/ac97_codec.c8
2 files changed, 0 insertions, 11 deletions
diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h
index dee766c17e9c..b45a73712748 100644
--- a/include/sound/ac97_codec.h
+++ b/include/sound/ac97_codec.h
@@ -446,8 +446,6 @@ struct snd_ac97_template {
446 unsigned short num; /* number of codec: 0 = primary, 1 = secondary */ 446 unsigned short num; /* number of codec: 0 = primary, 1 = secondary */
447 unsigned short addr; /* physical address of codec [0-3] */ 447 unsigned short addr; /* physical address of codec [0-3] */
448 unsigned int scaps; /* driver capabilities */ 448 unsigned int scaps; /* driver capabilities */
449 unsigned int limited_regs; /* allow limited registers only */
450 DECLARE_BITMAP(reg_accessed, 0x80); /* bit flags */
451 const struct snd_ac97_res_table *res_table; /* static resolution */ 449 const struct snd_ac97_res_table *res_table; /* static resolution */
452}; 450};
453 451
@@ -477,7 +475,6 @@ struct snd_ac97 {
477 unsigned int rates[6]; /* see AC97_RATES_* defines */ 475 unsigned int rates[6]; /* see AC97_RATES_* defines */
478 unsigned int spdif_status; 476 unsigned int spdif_status;
479 unsigned short regs[0x80]; /* register cache */ 477 unsigned short regs[0x80]; /* register cache */
480 unsigned int limited_regs; /* allow limited registers only */
481 DECLARE_BITMAP(reg_accessed, 0x80); /* bit flags */ 478 DECLARE_BITMAP(reg_accessed, 0x80); /* bit flags */
482 union { /* vendor specific code */ 479 union { /* vendor specific code */
483 struct { 480 struct {
diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c
index c5bbdcbf5422..278319bbdea1 100644
--- a/sound/pci/ac97/ac97_codec.c
+++ b/sound/pci/ac97/ac97_codec.c
@@ -192,9 +192,6 @@ static const struct ac97_codec_id snd_ac97_codec_ids[] = {
192 192
193static int snd_ac97_valid_reg(struct snd_ac97 *ac97, unsigned short reg) 193static int snd_ac97_valid_reg(struct snd_ac97 *ac97, unsigned short reg)
194{ 194{
195 if (ac97->limited_regs && ! test_bit(reg, ac97->reg_accessed))
196 return 0;
197
198 /* filter some registers for buggy codecs */ 195 /* filter some registers for buggy codecs */
199 switch (ac97->id) { 196 switch (ac97->id) {
200 case AC97_ID_AK4540: 197 case AC97_ID_AK4540:
@@ -1008,9 +1005,6 @@ static int snd_ac97_try_volume_mix(struct snd_ac97 * ac97, int reg)
1008 break; 1005 break;
1009 } 1006 }
1010 1007
1011 if (ac97->limited_regs && test_bit(reg, ac97->reg_accessed))
1012 return 1; /* allow without check */
1013
1014 val = snd_ac97_read(ac97, reg); 1008 val = snd_ac97_read(ac97, reg);
1015 if (!(val & mask)) { 1009 if (!(val & mask)) {
1016 /* nothing seems to be here - mute flag is not set */ 1010 /* nothing seems to be here - mute flag is not set */
@@ -1866,8 +1860,6 @@ int snd_ac97_mixer(struct snd_ac97_bus *bus, struct snd_ac97_template *template,
1866 ac97->num = template->num; 1860 ac97->num = template->num;
1867 ac97->addr = template->addr; 1861 ac97->addr = template->addr;
1868 ac97->scaps = template->scaps; 1862 ac97->scaps = template->scaps;
1869 ac97->limited_regs = template->limited_regs;
1870 memcpy(ac97->reg_accessed, template->reg_accessed, sizeof(ac97->reg_accessed));
1871 ac97->res_table = template->res_table; 1863 ac97->res_table = template->res_table;
1872 bus->codec[ac97->num] = ac97; 1864 bus->codec[ac97->num] = ac97;
1873 mutex_init(&ac97->reg_mutex); 1865 mutex_init(&ac97->reg_mutex);