On 9/8/25 11:36, Alex Deucher wrote:
@[email protected]@Wentland, Harry
  Were you planning to pick this up for this week's promotion or should
I grab it?

I will send them to weekly DC promotion.

Thanks.


Thanks,

Alex

On Wed, Sep 3, 2025 at 11:27 AM Timur Kristóf <[email protected]> wrote:

On Tue, 2025-08-26 at 10:06 -0400, Alex Deucher wrote:
On Mon, Aug 25, 2025 at 5:33 PM Timur Kristóf
<[email protected]> 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 <[email protected]>

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 <[email protected]>

@[email protected] or @[email protected] Can you guys please
review this patch? Thank you!


---
  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)

nitpick: probably need extra spaces to align with dc_is_dvi_signal, but I can fix it manually after this patch passes promotion test.

+                       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


Reply via email to