[alsa-devel] Nodes, Widgets, ELD and Digital Surround 5.1 (HDMI) Output?

bencoxdev at gmail.com bencoxdev at gmail.com
Thu Dec 4 11:55:17 CET 2014


Hi Guys,
    Thank you for your input it's much appreciated.

    I have now produced the pulse audio log as suggested and it appears that 
when an attempt to open the Digital Surround 5.1 device, it fails with a 
"No such file or directory" error. Here is a snippet of the log showing the 
error.

(   0.456|   0.000) D: [pulseaudio] alsa-mixer.c: Looking at profile output:iec958-ac3-surround-51
(   0.456|   0.000) D: [pulseaudio] alsa-mixer.c: Checking for playback on Digital Surround 5.1 (IEC958/AC3) (iec958-ac3-surround-51)
(   0.456|   0.000) D: [pulseaudio] alsa-util.c: Trying a52:1 with SND_PCM_NO_AUTO_FORMAT ...
(   0.456|   0.000) I: [pulseaudio] (alsa-lib)pcm.c: Unknown PCM a52:1
(   0.456|   0.000) I: [pulseaudio] alsa-util.c: Error opening PCM device a52:1: No such file or directory

So I guess the next question is what is responsible for producing the 
required device?

TIA
-----------------------------------------------------------------------------
Regards
Ben

From: Alexander E. Patrakov 
Sent: Wednesday, December 03, 2014 7:58 AM
To: David Henningsson ; bencoxdev at gmail.com ; ALSA Mailing list 
Subject: Re: [alsa-devel] Nodes, Widgets, ELD and Digital Surround 5.1 (HDMI) Output?
03.12.2014 12:34, David Henningsson wrote:
>
>
> On 2014-12-02 16:28, bencoxdev at gmail.com wrote:
>> Hi All,
>>      I have an Intel HDA compatible device that supports 5.1 digital
>> audio output over HDMI. It reports two nodes and two widgets:-
>>
>>                     Root(0)
>>                       |
>>                      AFG(1)
>>                      / \
>>                     /   \
>>                    /     \
>>        Audio output(2)    Pin Complex(3)
>>
>> This setup produces a “Digital Stereo (HDMI) Output” device at user
>> level in the operating system.
>>
>> The codec reports its self  to the operating system as follows
>> (from /proc/asound/card0/codec#1)
>> --------------------------------------------------------------------
>> AFG Function Id: 0x1 (unsol 1)
>> No Modem Function Group found
>> Default PCM:
>>      rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
>>      bits [0xe]: 16 20 24
>>      formats [0x1]: PCM
>> Default Amp-In caps: N/A
>> Default Amp-Out caps: N/A
>> GPIO: io=0, o=0, i=0, unsolicited=0, wake=0
>> --------------------------------------------------------------------
>> Node 0x02 [Audio Output] wcaps 0x201: Stereo Digital
>>    Device: name="S3 HDMI 1", type="Audio", device=0
>>    Converter: stream=0, channel=0
>>    Digital:
>>    Digital category: 0x0
>> --------------------------------------------------------------------
>> Node 0x03 [Pin Complex] wcaps 0x400381: Stereo Digital
>>    Pincap 0x00000090: OUT HDMI
>>    Pin Default 0x185650f0: [Jack] Digital Out at Int HDMI
>>      Conn = Digital, Color = Red
>>      DefAssociation = 0xf, Sequence = 0x0
>>    Pin-ctls: 0x40: OUT
>>    Unsolicited: tag=00, enabled=0
>>    Connection: 1
>>       0x02
>> --------------------------------------------------------------------
>>
>> the ELD from the receiving device is:-
>>
>> monitor_present      1
>> eld_valid            1
>> monitor_name         EP-HDMI-RX
>> connection_type      HDMI
>> eld_version          [0x2] CEA-861D or below
>> edid_version         [0x3] CEA-861-B, C or D
>> manufacture_id       0x1017
>> product_id           0x901
>> port_id              0x0
>> support_hdcp         0
>> support_ai           1
>> audio_sync_delay     0
>> speakers             [0x4f] FL/FR LFE FC RL/RR RLC/RRC
>>
>> sad_count            2
>>
>> sad0_coding_type     [0x2] AC-3
>> sad0_channels        6
>> sad0_rates           [0xe0] 32000 44100 48000
>> sad0_max_bitrate     640000
>>
>> sad1_coding_type     [0x7] DTS
>> sad1_channels        7
>> sad1_rates           [0xc0] 44100 48000
>> sad1_max_bitrate     1536000
>>
>>
>> Does anyone know what changes would be required to this setup in
>> order for the device to be recognised as
>> “Digital Surround 5.1 (HDMI) Output”
>> by alsa?
>
> You're confusing ALSA and PulseAudio a bit here; I think you should
> first try to get a PulseAudio verbose log (
> https://wiki.ubuntu.com/PulseAudio/Log ), look for when it tries to open
> hdmi:0,1 in surround 5.1 version and see if you can find errors. Those
> errors might still be ALSA errors though, and come from alsa-lib.

To add: if your HDMI audio controller was, in fact, made by AMD, then 
PulseAudio 5.0 will not even try to open it in 5.1 mode. This bug has 
been fixed in 6.0-rc1. You can try creating new udev rules if you don't 
want to upgrade. There is a line in /lib/udev/rules.d/90-pulseaudio.rules:

/lib/udev/rules.d/90-pulseaudio.rules:ATTRS{vendor}=="0x8086", 
ENV{PULSE_PROFILE_SET}="extra-hdmi.conf"

All you need to do is to figure out the vendor ID (from lspci -nn) and 
write a similar line to /etc/udev/rules.d/91-my-pulseaudio.rules , then 
run "udevadm trigger" and possibly logout and login again. Or reboot.

However, the upstream fix was to remove the "extra-hdmi.conf" file 
completely and merge all profiles contained there to the default set.

-- 
Alexander E. Patrakov


More information about the Alsa-devel mailing list