[PATCH] drm/amd/display: Fix DVI-D/HDMI adapters
Alex Deucher
alexdeucher at gmail.com
Tue Aug 26 14:06:43 UTC 2025
On Mon, Aug 25, 2025 at 5:33 PM Timur Kristóf <timur.kristof at gmail.com> wrote:
>
> When the EDID has the HDMI bit, we should simply select
> the HDMI signal type even on DVI ports.
>
> For reference see, the legacy amdgpu display code:
> amdgpu_atombios_encoder_get_encoder_mode
> which selects ATOM_ENCODER_MODE_HDMI for the same case.
>
> This commit fixes DVI connectors to work with DVI-D/HDMI
> adapters so that they can now produce output over these
> connectors for HDMI monitors with higher bandwidth modes.
> With this change, even HDMI audio works through DVI.
>
> For testing, I used a CAA-DMDHFD3 DVI-D/HDMI adapter
> with the following GPUs:
>
> Tahiti (DCE 6) - DC can now output 4K 30 Hz over DVI
> Polaris 10 (DCE 11.2) - DC can now output 4K 60 Hz over DVI
>
> Signed-off-by: Timur Kristóf <timur.kristof at gmail.com>
Makes sense to me, but would be good to get input from display team in
case there is anything I'm missing.
Acked-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> drivers/gpu/drm/amd/display/dc/link/link_detection.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/link/link_detection.c b/drivers/gpu/drm/amd/display/dc/link/link_detection.c
> index 827b630daf49..42180e6aca91 100644
> --- a/drivers/gpu/drm/amd/display/dc/link/link_detection.c
> +++ b/drivers/gpu/drm/amd/display/dc/link/link_detection.c
> @@ -1140,6 +1140,10 @@ static bool detect_link_and_local_sink(struct dc_link *link,
> if (sink->sink_signal == SIGNAL_TYPE_HDMI_TYPE_A &&
> !sink->edid_caps.edid_hdmi)
> sink->sink_signal = SIGNAL_TYPE_DVI_SINGLE_LINK;
> + else if (dc_is_dvi_signal(sink->sink_signal) &&
> + aud_support->hdmi_audio_native &&
> + sink->edid_caps.edid_hdmi)
> + sink->sink_signal = SIGNAL_TYPE_HDMI_TYPE_A;
>
> if (link->local_sink && dc_is_dp_signal(sink_caps.signal))
> dp_trace_init(link);
> --
> 2.50.1
>
More information about the amd-gfx
mailing list