[alsa-devel] CX20585 - selecting wrong digital output
ajr55555 at gmail.com
Thu Jan 6 21:55:49 CET 2011
I opened bug 0005235 in the bug tracking system regarding no output
from my laptop's (Asus U50F) mini-TOSLINK jack, even though ALSA was
detecting and providing a SPDIF output device. Using the alsa-info
output, somebody was able to diagnose the issue, and I was able to
confirm the problem. It looks like the CX20585 has two digital
Node 0x12 [Audio Output] wcaps 0x611: Stereo Digital
Node 0x21 [Audio Output] wcaps 0x611: Stereo Digital
Since the CX20585 uses the CXT5066 patch in ALSA, node 0x21 is used
for the SPDIF device. However, at least in the case of my laptop, that
digital output is connected to a pin complex which is N/A:
Pin Default 0x400001f0: [N/A] Line Out at Ext N/A
However, node 0x12 IS connected to the optical out jack:
Pin Default 0x034511f0: [Jack] SPDIF Out at Ext Left
So, in this case, ALSA should use node 0x12 instead of node 0x21 for
SPDIF out. I confirmed this with the latest snapshot by changing the
digital output from 0x21 to 0x12, and that solved the problem.
If there are no volunteers that want to take a look at a "real"
solution for this :-), I might take a crack at it myself, but I'm not
all that familiar with the driver right now. There seems to be
different ways this could be handled:
(1) Introduce a model that would use 0x12 instead of 0x21 as the digital output
(2) Check the pin complexes associated with outputs 0x12 and 0x21 to
determine which one is actually connected to a jack, and use that
output as the SPDIF device instead of always choosing 0x21
(3) What if both digital outputs are connected to a valid jack? Should
ALSA then create devices for both? As of now, it's not even creating a
device for 0x12 even though it's a valid audio output.
Any comments or suggestions are welcome.
More information about the Alsa-devel