All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alexander E. Patrakov" <patrakov@gmail.com>
To: David Henningsson <david.henningsson@canonical.com>,
	bencoxdev@gmail.com,
	ALSA Mailing list <alsa-devel@alsa-project.org>
Subject: Re: Nodes, Widgets, ELD and Digital Surround 5.1 (HDMI) Output?
Date: Wed, 03 Dec 2014 12:58:55 +0500	[thread overview]
Message-ID: <547EC2BF.3080601@gmail.com> (raw)
In-Reply-To: <547EBCFF.5030204@canonical.com>

03.12.2014 12:34, David Henningsson wrote:
>
>
> 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.

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
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  reply	other threads:[~2014-12-03  7:58 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-02 15:28 Nodes, Widgets, ELD and Digital Surround 5.1 (HDMI) Output? bencoxdev
2014-12-03  7:34 ` David Henningsson
2014-12-03  7:58   ` Alexander E. Patrakov [this message]
2014-12-04 10:55     ` bencoxdev
2014-12-04 12:08       ` Raymond Yau
2014-12-04 12:34       ` Alexander E. Patrakov
2014-12-05  2:33         ` Raymond Yau
2014-12-05  9:41         ` bencoxdev
2014-12-05 10:49           ` Alexander E. Patrakov
2014-12-08 14:40             ` bencoxdev
2014-12-08 16:38               ` Alexander E. Patrakov
2014-12-08 17:42                 ` bencoxdev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=547EC2BF.3080601@gmail.com \
    --to=patrakov@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=bencoxdev@gmail.com \
    --cc=david.henningsson@canonical.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.