AC97 Codec
ac97_enum mixer elements (e.g., 'Capture Source') did not work because
of wrong bitmask calculation in snd_ac97_get_enum_double() and
snd_ac97_put_enum_double().
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=1072
Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
        struct ac97_enum *e = (struct ac97_enum *)kcontrol->private_value;
        unsigned short val, bitmask;
        
-       for (bitmask = 1; bitmask > e->mask; bitmask <<= 1)
+       for (bitmask = 1; bitmask < e->mask; bitmask <<= 1)
                ;
        val = snd_ac97_read_cache(ac97, e->reg);
        ucontrol->value.enumerated.item[0] = (val >> e->shift_l) & (bitmask - 1);
        unsigned short val;
        unsigned short mask, bitmask;
        
-       for (bitmask = 1; bitmask > e->mask; bitmask <<= 1)
+       for (bitmask = 1; bitmask < e->mask; bitmask <<= 1)
                ;
        if (ucontrol->value.enumerated.item[0] > e->mask - 1)
                return -EINVAL;