[alsa-devel] [pulseaudio-discuss] Issue with multiple hdmi codecs in radeonhd, hacked to work
Deucher, Alexander
Alexander.Deucher at amd.com
Mon Dec 9 16:24:50 CET 2013
> -----Original Message-----
> From: Anssi Hannula [mailto:anssi.hannula at iki.fi]
> Sent: Saturday, December 07, 2013 7:59 PM
> To: Raymond Yau; John Ettedgui; ALSA Development Mailing List
> Cc: Takashi Iwai; Deucher, Alexander
> Subject: Re: [pulseaudio-discuss] Issue with multiple hdmi codecs in
> radeonhd, hacked to work
>
> 07.12.2013 09:18, Raymond Yau kirjoitti:
> > I just changed my RadeonHD 4670 for a 7870, and now when I type
> > "aplay -l" I get many HDMI codecs instead of just one like for the
> > previous
> >
> >
> > Do your card specification support Discrete Digital Multi-Point Audio
> > (DDMA) /?/
> >
> > DDMA enables Radeon™HD 7700-7900 Series GPUs with the ability to
> output
> > multiple and independent audio streams simultaneously through digital
> > interfaces that support audio, such as DisplayPort and HDMI®. Each audio
> > stream can be multi-channel (up to 8 channels)
>
> AFAIK yes, the multi-hdmi-device AMD cards are "DDMA".
>
> [...]
> > monitor_present 1
> > eld_valid 1
> > monitor_name
> > connection_type HDMI
> > eld_version [0x2] CEA-861D or below
> > edid_version [0x0] no CEA EDID Timing Extension block present
> > manufacture_id 0x0
> > product_id 0x0
> > port_id 0x0
> > support_hdcp 0
> > support_ai 0
> > audio_sync_delay 0
> > speakers [0x5f] FL/FR LFE FC RL/RR RC RLC/RRC
> > sad_count 6
> > sad0_coding_type [0x1] LPCM
> > sad0_channels 8
> > sad0_rates [0x1ee0] 32000 44100 48000 88200 96000 176400 192000
> > sad0_bits [0xe0000] 16 20 24
> > sad1_coding_type [0x2] AC-3
> > sad1_channels 6
> > sad1_rates [0xe0] 32000 44100 48000
> > sad1_max_bitrate 640000
> > sad2_coding_type [0x7] DTS
> > sad2_channels 6
> > sad2_rates [0x6c0] 44100 48000 88200 96000
> > sad2_max_bitrate 1536000
> > sad3_coding_type [0xa] E-AC-3/DD+ (Dolby Digital Plus)
> > sad3_channels 8
> > sad3_rates [0xc0] 44100 48000
> > sad4_coding_type [0xb] DTS-HD
> > sad4_channels 8
> > sad4_rates [0x1ec0] 44100 48000 88200 96000 176400 192000
> > sad5_coding_type [0xc] MLP (Dolby TrueHD)
> > sad5_channels 8
> > sad5_rates [0x1ec0] 44100 48000 88200 96000 176400 192000
> > monitor_present 1
> > eld_valid 0
> > monitor_present 1
> > eld_valid 0
> > monitor_present 1
> > eld_valid 0
> > monitor_present 1
> > eld_valid 0
> > monitor_present 1
> > eld_valid 0
> >
> > e.g. HDMI status message in function hdmi_present_sense in
> patch_hdmi.c
> >
> > need to find out why eld->monitor_present was set for all six complexes
> >
> > the value return by function atihdmi_pin_get_eld since it change
> > eld->eld_valid to false when it is negative
>
> When CONFIG_SND_DEBUG_VERBOSE is enabled, hdmi_present_sense()
> prints
> the actual hw Presence_Detect/ELD_Valid before eld->eld_valid is
> overridden to 0 (and hdmi_intrinsic_event() prints the hot plug event
> values).
>
> Alex, do you have information regarding why "Presence detect" (aka
> monitor_present above) seems to be set for all HDMI pins in the response
> of Pin Sense 0xF09 verb (or if it is even expected), and/or if we should
> use alternate means of getting jack status?
The GPU driver needs to set the status properly when the monitor is connected/disconnected. At the moment the GPU driver calls the audio_enable(true) once at driver load time, but it should call it at runtime when a monitor is connected (true) or disconnected (false). If I have time this week I'll see if I can whip up a patch to test.
Alex
>
> CONFIG_SND_DEBUG_VERBOSE log might also be interesting, I wonder if
> eld_valid is also 1 for every pin or not (before ALSA forces 0). Also, I
> wonder if all monitor_present fields are 1 with fglrx driver as well, or
> when all displays are unplugged...
>
> [...]
>
> --
> Anssi Hannula
More information about the Alsa-devel
mailing list