Re: [alsa-devel] [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?
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...
[...]
-----Original Message----- From: Anssi Hannula [mailto:anssi.hannula@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
participants (2)
-
Anssi Hannula
-
Deucher, Alexander