Update of /cvsroot/alsa/alsa-kernel/pci/ac97
In directory sc8-pr-cvs1:/tmp/cvs-serv31798

Modified Files:
        ac97_codec.c 
Log Message:
Added sigmatel surround control

Index: ac97_codec.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/ac97/ac97_codec.c,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -r1.50 -r1.51
--- ac97_codec.c        11 Dec 2002 18:02:09 -0000      1.50
+++ ac97_codec.c        26 Dec 2002 11:57:42 -0000      1.51
@@ -671,6 +671,11 @@
 AC97_DOUBLE("Surround Playback Volume", AC97_SURROUND_MASTER, 8, 0, 31, 1),
 };
 
+static const snd_kcontrol_new_t snd_ac97_sigmatel_surround[2] = {
+AC97_SINGLE("Sigmatel Surround Playback Switch", AC97_HEADPHONE, 15, 1, 1),
+AC97_DOUBLE("Sigmatel Surround Playback Volume", AC97_HEADPHONE, 8, 0, 31, 1)
+};
+
 static const snd_kcontrol_new_t snd_ac97_sigmatel_controls[] = {
 AC97_SINGLE("Sigmatel DAC 6dB Attenuate", AC97_SIGMATEL_ANALOG, 1, 1, 0),
 AC97_SINGLE("Sigmatel ADC 6dB Attenuate", AC97_SIGMATEL_ANALOG, 0, 1, 0)
@@ -1236,6 +1241,7 @@
 static int snd_ac97_mixer_build(snd_card_t * card, ac97_t * ac97)
 {
        snd_kcontrol_t *kctl;
+       const snd_kcontrol_new_t *knew;
        int err, idx;
        unsigned char max;
 
@@ -1291,10 +1297,11 @@
        }
 
        /* build headphone controls */
-       if (snd_ac97_try_volume_mix(ac97, AC97_HEADPHONE)) {
-               if ((err = snd_ctl_add(card, 
snd_ac97_cnew(&snd_ac97_controls_headphone[0], ac97))) < 0)
+       if (snd_ac97_try_volume_mix(ac97, AC97_HEADPHONE) || ac97->id == 
+AC97_ID_STAC9708) {
+               knew = ac97->id == AC97_ID_STAC9708 ? snd_ac97_sigmatel_surround : 
+snd_ac97_controls_headphone;
+               if ((err = snd_ctl_add(card, snd_ac97_cnew(knew, ac97))) < 0)
                        return err;
-               if ((err = snd_ctl_add(card, kctl = 
snd_ac97_cnew(&snd_ac97_controls_headphone[1], ac97))) < 0)
+               if ((err = snd_ctl_add(card, kctl = snd_ac97_cnew(knew + 1, ac97))) < 
+0)
                        return err;
                snd_ac97_change_volume_params1(ac97, AC97_HEADPHONE, &max);
                kctl->private_value &= ~(0xff << 16);



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog

Reply via email to