Update of /cvsroot/alsa/alsa-kernel/pci/cs46xx
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14110/pci/cs46xx

Modified Files:
        cs46xx_lib.c 
Log Message:
- fixed ALC100/P Master/PCM volume handling (h/w bug)
- added ALC65x JACK quirk
- disabled IC5 PERL mobo quirk
- fixed Mic/Center sharing switch on ALC65x.
- fixed Mic BIAS on ALC650.
- added extra delay in the resume if needed.
- renamed "External Amplifier Power Down" to "External Amplifier"
- added a workaround for the reversed EAPD of cs46xx voyetra.


Index: cs46xx_lib.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/cs46xx/cs46xx_lib.c,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -r1.69 -r1.70
--- cs46xx_lib.c        2 Mar 2004 15:32:37 -0000       1.69
+++ cs46xx_lib.c        5 Mar 2004 12:04:44 -0000       1.70
@@ -66,6 +66,8 @@
 #include "cs46xx_lib.h"
 #include "dsp_spos.h"
 
+static void amp_voyetra(cs46xx_t *chip, int change);
+
 static unsigned short snd_cs46xx_codec_read(cs46xx_t *chip,
                                            unsigned short reg,
                                            int codec_index)
@@ -203,6 +205,13 @@
        chip->active_ctrl(chip, 1);
        val = snd_cs46xx_codec_read(chip, reg, codec_index);
        chip->active_ctrl(chip, -1);
+
+       /* HACK: voyetra uses EAPD bit in the reverse way.
+        * we flip the bit to show the mixer status correctly
+        */
+       if (reg == AC97_POWERDOWN && chip->amplifier_ctrl == amp_voyetra)
+               val ^= 0x8000;
+
        return val;
 }
 
@@ -284,6 +293,12 @@
        else
                snd_assert(0,return);
 
+       /* HACK: voyetra uses EAPD bit in the reverse way.
+        * we flip the bit to show the mixer status correctly
+        */
+       if (reg == AC97_POWERDOWN && chip->amplifier_ctrl == amp_voyetra)
+               val ^= 0x8000;
+
        chip->active_ctrl(chip, 1);
        snd_cs46xx_codec_write(chip, reg, val, codec_index);
        chip->active_ctrl(chip, -1);
@@ -2550,7 +2565,7 @@
        /* get EAPD mixer switch (for voyetra hack) */
        memset(&id, 0, sizeof(id));
        id.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
-       strcpy(id.name, "External Amplifier Power Down");
+       strcpy(id.name, "External Amplifier");
        chip->eapd_switch = snd_ctl_find_id(chip->card, &id);
     
 #ifdef CONFIG_SND_CS46XX_NEW_DSP



-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog

Reply via email to