On Tue, 9 Nov 2010, David Henningsson wrote:
I have seen a few HDMIs which share the HDA controller with the onboard sound card, but the codecs are different, e g the onboard one is at address #0 and the HDMI is at address #3 - or even #3, #7, #8 and #9 in some cases.
Now, if the user specifies the device string hdmi:x (where x is card name/number), I'd like it to kind of autodetect this and use DEV=3 instead of DEV=0, and without breaking the cards where the hdmi is a separate card with a codec at address #0. However, it still seems like the device is at DEV=3 somehow.
Now, looking at /usr/share/alsa/cards/HDA-Intel.conf, I notice that there are entries HDA-Intel.pcm.hdmi.0 which sets DEV=3, so it seems like someone already thought of this. However, just using "hdmi:x" does not trigger "DEV=3". I'm still not grepping all of the alsa lisp architecture stuff, so could someone explain to me how the HDA-Intel.pcm.hdmi.0 entry relates to the "hdmi:x" alsa device string?
It's not about a lisp (this portion of code is not used at all). It's about the (partly) dynamic alsa-lib configuration.
Use always indexes from 0.. (hdmi:0,0 etc..) Fist number is card number, second number is device number (which is logical device number mapped to different physical device number in case when HDA card contains both analog and HDMI sections).
If you read HDA-Intel.conf, you'll get this device mapping (logical, physical):
0 -> 3 1 -> 7 2 -> 8 3 -> 9
Perhaps, something does not work correctly?
Jaroslav
----- Jaroslav Kysela perex@perex.cz Linux Kernel Sound Maintainer ALSA Project, Red Hat, Inc.