aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/ac97/ac97_codec.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2005-03-29 09:33:28 -0500
committerJaroslav Kysela <perex@suse.cz>2005-05-29 03:00:33 -0400
commita2142674b958d89e0806228a5f6cd22ec379d61d (patch)
tree875f7f64f85433dd3df1c465ad1d57f04eb99f80 /sound/pci/ac97/ac97_codec.c
parent56f5ceed002db594500c1d2c2afc875be3d31fb5 (diff)
[ALSA] Fix the detection of resolution of ac97 controls
AC97 Codec Fixed the detection of bit resolution of ac97 mixer controls. This will fix the problem with TI ac97 codecs. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/ac97/ac97_codec.c')
-rw-r--r--sound/pci/ac97/ac97_codec.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c
index 0b024ec1f70..7d2854de0c1 100644
--- a/sound/pci/ac97/ac97_codec.c
+++ b/sound/pci/ac97/ac97_codec.c
@@ -1072,9 +1072,9 @@ static void check_volume_resolution(ac97_t *ac97, int reg, unsigned char *lo_max
1072 unsigned short val; 1072 unsigned short val;
1073 snd_ac97_write(ac97, reg, 0x8080 | cbit[i] | (cbit[i] << 8)); 1073 snd_ac97_write(ac97, reg, 0x8080 | cbit[i] | (cbit[i] << 8));
1074 val = snd_ac97_read(ac97, reg); 1074 val = snd_ac97_read(ac97, reg);
1075 if (! *lo_max && (val & cbit[i])) 1075 if (! *lo_max && (val & 0x7f) == cbit[i])
1076 *lo_max = max[i]; 1076 *lo_max = max[i];
1077 if (! *hi_max && (val & (cbit[i] << 8))) 1077 if (! *hi_max && ((val >> 8) & 0x7f) == cbit[i])
1078 *hi_max = max[i]; 1078 *hi_max = max[i];
1079 if (*lo_max && *hi_max) 1079 if (*lo_max && *hi_max)
1080 break; 1080 break;