On 2014-12-02 16:28, bencoxdev@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.