Update of /cvsroot/alsa/alsa-kernel/pci/ac97 In directory sc8-pr-cvs1:/tmp/cvs-serv11562/pci/ac97
Modified Files: ac97_patch.c ac97_proc.c Log Message: James Courtier-Dutton <[EMAIL PROTECTED]>: - enabled SPDIF input of ALC650. Index: ac97_patch.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/ac97/ac97_patch.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- ac97_patch.c 28 Aug 2003 15:36:44 -0000 1.21 +++ ac97_patch.c 1 Sep 2003 09:53:26 -0000 1.22 @@ -915,6 +915,9 @@ } if (spdif) { + /* enable AC97_ALC650_GPIO_SETUP, AC97_ALC650_CLOCK for R/W */ + snd_ac97_write_cache(ac97, AC97_ALC650_GPIO_STATUS, + snd_ac97_read(ac97, AC97_ALC650_GPIO_STATUS) | 0x8000); /* enable spdif in */ snd_ac97_write_cache(ac97, AC97_ALC650_CLOCK, snd_ac97_read(ac97, AC97_ALC650_CLOCK) | 0x03); @@ -930,18 +933,18 @@ int mic_off; mic_off = snd_ac97_read(ac97, AC97_ALC650_MULTICH) & (1 << 10); /* GPIO0 direction */ - val = snd_ac97_read(ac97, 0x76); + val = snd_ac97_read(ac97, AC97_ALC650_GPIO_SETUP); if (mic_off) val &= ~0x01; else val |= 0x01; - snd_ac97_write_cache(ac97, 0x76, val); - val = snd_ac97_read(ac97, 0x78); + snd_ac97_write_cache(ac97, AC97_ALC650_GPIO_SETUP, val); + val = snd_ac97_read(ac97, AC97_ALC650_GPIO_STATUS); if (mic_off) val &= ~0x100; else val = val | 0x100; - snd_ac97_write_cache(ac97, 0x78, val); + snd_ac97_write_cache(ac97, AC97_ALC650_GPIO_STATUS, val); } /* full DAC volume */ Index: ac97_proc.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/ac97/ac97_proc.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ac97_proc.c 17 Jun 2003 18:43:32 -0000 1.1 +++ ac97_proc.c 1 Sep 2003 09:53:26 -0000 1.2 @@ -151,7 +151,7 @@ snd_iprintf(buffer, "SPDIF Control :%s%s%s%s Category=0x%x Generation=%i%s%s%s\n", val & AC97_SC_PRO ? " PRO" : " Consumer", val & AC97_SC_NAUDIO ? " Non-audio" : " PCM", - val & AC97_SC_COPY ? " Copyright" : "", + val & AC97_SC_COPY ? "" : " Copyright", val & AC97_SC_PRE ? " Preemph50/15" : "", (val & AC97_SC_CC_MASK) >> AC97_SC_CC_SHIFT, (val & AC97_SC_L) >> 11, @@ -164,7 +164,31 @@ (ac97->flags & AC97_CS_SPDIF) ? (val & AC97_SC_V ? " Enabled" : "") : (val & AC97_SC_V ? " Validity" : "")); + /* ALC650 specific*/ + if ((ac97->id & 0xfffffff0) == 0x414c4720 && + (snd_ac97_read(ac97, AC97_ALC650_CLOCK) & 0x01)) { + val = snd_ac97_read(ac97, AC97_ALC650_SPDIF_INPUT_STATUS2); + if (val & AC97_ALC650_CLOCK_LOCK) { + val = snd_ac97_read(ac97, AC97_ALC650_SPDIF_INPUT_STATUS1); + snd_iprintf(buffer, "SPDIF In Status :%s%s%s%s Category=0x%x Generation=%i", + val & AC97_ALC650_PRO ? " PRO" : " Consumer", + val & AC97_ALC650_NAUDIO ? " Non-audio" : " PCM", + val & AC97_ALC650_COPY ? "" : " Copyright", + val & AC97_ALC650_PRE ? " Preemph50/15" : "", + (val & AC97_ALC650_CC_MASK) >> AC97_ALC650_CC_SHIFT, + (val & AC97_ALC650_L) >> 15); + val = snd_ac97_read(ac97, AC97_ALC650_SPDIF_INPUT_STATUS2); + snd_iprintf(buffer, "%s Accuracy=%i%s%s\n", + spdif_rates[(val & AC97_ALC650_SPSR_MASK) >> AC97_ALC650_SPSR_SHIFT], + (val & AC97_ALC650_CLOCK_ACCURACY) >> AC97_ALC650_CLOCK_SHIFT, + (val & AC97_ALC650_CLOCK_LOCK ? " Locked" : " Unlocked"), + (val & AC97_ALC650_V ? " Validity?" : "")); + } else { + snd_iprintf(buffer, "SPDIF In Status : Not Locked\n"); + } + } } + __modem: mext = snd_ac97_read(ac97, AC97_EXTENDED_MID); ------------------------------------------------------- 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