[alsa-devel] [pulseaudio-discuss] Issue with multiple hdmi codecs in radeonhd, hacked to work
Anssi Hannula
anssi.hannula at iki.fi
Sun Dec 8 01:59:01 CET 2013
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?
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