ALC650 rev D. - SPDIF out
Hi,
I have ALC650 rev. D and spdif is not working with 0.9.7.
Please delete this row from ac97_patch.c from function patch_alc650
ac97->ext_id &= ~AC97_EI_SPDIF; /* disable extended-id */
I think, that all ALC650 have spdif out and rev. E and later have spdif in.
Peter Zubaj
____________________________________
http://www.logofun.pobox.sk - urobte radost svojmu telefonu
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
Quoted 4 lines · p z oooo
Hi,
I have ALC650 rev. D and spdif is not working with 0.9.7.
Quoted 9 lines
Please delete this row from
ac97_patch.cfrom functionpatch_alc650
ac97->ext_id&= ~AC97_EI_SPDIF; /* disable extended-id */I think, that all ALC650 have spdif out and rev. E and later have spdif in.
Peter Zubaj
The ALC650 chip specs do show that SPDIF out is present on all models.
I am not sure about your fix, because even the Realtek versions of the alsa driver disable spdif out if AC97_EA_SPCV is not set. Reasons for AC97_EA_SPCV not being set are: -
Current S/PDIF configuration {SPSA,SPSR,DAC/slot rate} is invalid.
Why that only works on Rev E or above I don't know.
I think that maybe a better way would be to also remove the checking of AC97_EA_SPCV, and instead use the Chip revision code, now that we can detect chip revisions.
See attached suggested patch.
Cheers
James
ac97_patch.c renamed from ac97_patch.c.org +6 -13
@@ -898,7 +898,6 @@int patch_alc650 (ac97_t * ac97) {unsigned short val; -int spdif =0 ; ac97->build_ops = &patch_alc650_ops;
@@ -907,22 +906,16 @@ ac97->spec.dev_flags = (ac97->id ==0x414c4722 || ac97->id ==0x414c4723 ); -/* check spdif (should be only on rev.E) */ -if (ac97->spec.dev_flags) { - val =snd_ac97_read (ac97,AC97_EXTENDED_STATUS ); -if (val &AC97_EA_SPCV ) - spdif =1 ; - } +/* 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 ); -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 only on Rev.E and above */ +if (ac97->spec.dev_flags) {/* enable spdif in */ snd_ac97_write_cache (ac97,AC97_ALC650_CLOCK ,snd_ac97_read (ac97,AC97_ALC650_CLOCK ) |0x03 ); - }else - ac97->ext_id &= ~AC97_EI_SPDIF ;/* disable extended-id */ + } val =snd_ac97_read (ac97,AC97_ALC650_MULTICH ); val &= ~0xc000 ;/* slot: 3,4,7,8,6,9 */
PATCH 1/1 ALC650 rev D. - SPDIF out
In reply to p z ooooHi,
Here is a patch to enable SPDIF out on ALC650 rev D. codecs.
Cheers
James
ac97_patch.c renamed from ac97_patch.c.org +6 -13
@@ -898,7 +898,6 @@int patch_alc650 (ac97_t * ac97) {unsigned short val; -int spdif =0 ; ac97->build_ops = &patch_alc650_ops;
@@ -907,22 +906,16 @@ ac97->spec.dev_flags = (ac97->id ==0x414c4722 || ac97->id ==0x414c4723 ); -/* check spdif (should be only on rev.E) */ -if (ac97->spec.dev_flags) { - val =snd_ac97_read (ac97,AC97_EXTENDED_STATUS ); -if (val &AC97_EA_SPCV ) - spdif =1 ; - } +/* 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 ); -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 only on Rev.E and above */ +if (ac97->spec.dev_flags) {/* enable spdif in */ snd_ac97_write_cache (ac97,AC97_ALC650_CLOCK ,snd_ac97_read (ac97,AC97_ALC650_CLOCK ) |0x03 ); - }else - ac97->ext_id &= ~AC97_EI_SPDIF ;/* disable extended-id */ + } val =snd_ac97_read (ac97,AC97_ALC650_MULTICH ); val &= ~0xc000 ;/* slot: 3,4,7,8,6,9 */
At Fri, 10 Oct 2003 15:52:31 +0100,
Quoted 5 lines · James Courtier-Dutton
[1 <text/plain; us-ascii (7bit)>]
Hi,Here is a patch to enable SPDIF out on ALC650 rev D. codecs.
hmm, it's already in cvs.
perhaps you sent an obsolete patch?
Takashi
-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services:
Click here: http://sourceforge.net/supporters.php
Quoted 6 lines · Takashi Iwai
At Fri, 10 Oct 2003 15:52:31 +0100,
Quoted 3 lines · James Courtier-Dutton
[1 <text/plain; us-ascii (7bit)>]
Hi,
Quoted 9 lines
Quoted 1 line
Here is a patch to enable SPDIF out on ALC650 rev D. codecs.
hmm, it's already in cvs.
perhaps you sent an obsolete patch?Takashi
Thanks, previously, I think I sent the .diff file as a suggestion to another user, and only copied the alsa-devel list. I had not noticed that you had accepted and included it. :-)
Cheers
James
-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services:
Click here: http://sourceforge.net/supporters.php