[PATCH] Asus P5P800-VM, S/PDIF indication wrong?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello!

The attached patch will force building the S/PDIF controls on the PCU
SSID for Asus P5P800-VM motherboard, even if the  AC97_EI_SPDIF bit is
not set.

Is this approach OK or do you guys want to have the check somewhere else?

Signed-off-by: Magnus Sandin (magnus@xxxxxxxxx)


Takashi Iwai wrote:
> At Sat, 19 Aug 2006 09:37:01 +0200,
> Magnus Sandin wrote:
>   
>> Hello!
>>
>> On my ASUS P5P800-VM motherboard, the onboard AC97-chip (Realtek ALC655)
>> does not indicate that there are any S/PDIF functionality available.
>>
>> However, the manufacturer (Asus) claim that there are S/PDIF output on
>> the board, and of course there is.
>>
>> I created a patch that check the PCI subsystem vendor id and device id,
>> and if it's a match to this board it ignores the AC97_EI_SPDIF bit when
>> the controls are built.
>> This allows me to get the desired S/PDIF output to work just as expected.
>>
>> I'm not sure this is good practise to just ignore this bit or force the
>> bit to 1?
>>
>> I have checked the BIOS for settings regarding S/PDIF, but there are
>> none. The only audio setting available is to control if the chip shall
>> be enabled or disabled.
>>     
>
> Well, I'd call it a BIOS bug.  But such a thing can always happen, of
> course...
>
>   
>> What do you recommend in this case?
>>     
>
> I think your approach is OK.  The only concern is that the board with
> the same PCI SSID might have a codec without SPDIF, but I guess the
> probability of this regression is quite low.
>
> So, just send a patch for merging (maybe after 1.0.12 release).
>
>
> Thanks,
>
> Takashi
>   
diff -Nru alsa-kernel/pci/ac97/ac97_codec.c alsa-kernel-patched/pci/ac97/ac97_codec.c
--- alsa-kernel/pci/ac97/ac97_codec.c	2006-08-18 20:11:26.000000000 +0200
+++ alsa-kernel-patched/pci/ac97/ac97_codec.c	2006-08-18 22:01:14.000000000 +0200
@@ -1533,7 +1533,9 @@
 	}
 
 	/* build S/PDIF controls */
-	if ((ac97->ext_id & AC97_EI_SPDIF) && !(ac97->scaps & AC97_SCAP_NO_SPDIF)) {
+	/* 0x1043, 0x810f ASUS P5P800-VM, which does not indicate S/PDIF capability */
+	if (((ac97->subsystem_vendor == 0x1043 && ac97->subsystem_device == 0x810f) || (ac97->ext_id & AC97_EI_SPDIF))
+		       	&& !(ac97->scaps & AC97_SCAP_NO_SPDIF)) {
 		if (ac97->build_ops->build_spdif) {
 			if ((err = ac97->build_ops->build_spdif(ac97)) < 0)
 				return err;
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux