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