[ALSA] Fix the detection of resolution of ac97 controls
authorTakashi Iwai <tiwai@suse.de>
Tue, 29 Mar 2005 14:33:28 +0000 (16:33 +0200)
committerJaroslav Kysela <perex@suse.cz>
Sun, 29 May 2005 07:00:33 +0000 (09:00 +0200)
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>
sound/pci/ac97/ac97_codec.c

index 0b024ec..7d2854d 100644 (file)
@@ -1072,9 +1072,9 @@ static void check_volume_resolution(ac97_t *ac97, int reg, unsigned char *lo_max
                unsigned short val;
                snd_ac97_write(ac97, reg, 0x8080 | cbit[i] | (cbit[i] << 8));
                val = snd_ac97_read(ac97, reg);
-               if (! *lo_max && (val & cbit[i]))
+               if (! *lo_max && (val & 0x7f) == cbit[i])
                        *lo_max = max[i];
-               if (! *hi_max && (val & (cbit[i] << 8)))
+               if (! *hi_max && ((val >> 8) & 0x7f) == cbit[i])
                        *hi_max = max[i];
                if (*lo_max && *hi_max)
                        break;