[alsa-devel] Nodes, Widgets, ELD and Digital Surround 5.1 (HDMI) Output?
Alexander E. Patrakov
patrakov at gmail.com
Wed Dec 3 08:58:55 CET 2014
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