OSDN Git Service

drm/amd/display: Add w/a to disable DP dual mode on certain ports
authorGeorge Shen <george.shen@amd.com>
Thu, 13 Apr 2023 23:03:59 +0000 (19:03 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 9 Jun 2023 13:28:20 +0000 (09:28 -0400)
[Why]
Certain ports on DCN3.2 configs do not properly populate the BIOS
info table flag to indicate DP dual mode is unsupported.

[How]
Add a workaround to disable DP dual mode on the ports with the missing
BIOS info table flag.

Reviewed-by: Michael Strauss <Michael.Strauss@amd.com>
Acked-by: Alan Liu <HaoPing.Liu@amd.com>
Signed-off-by: George Shen <george.shen@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dc.h
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c
drivers/gpu/drm/amd/display/dc/link/link_detection.c

index fea6838..fe60816 100644 (file)
@@ -887,6 +887,7 @@ struct dc_debug_options {
        bool override_odm_optimization;
        bool minimize_dispclk_using_odm;
        bool disable_subvp_high_refresh;
+       bool disable_dp_plus_plus_wa;
 };
 
 struct gpu_info_soc_bounding_box_v1_0;
index a493238..4de2f88 100644 (file)
@@ -729,6 +729,7 @@ static const struct dc_debug_options debug_defaults_drv = {
        .disable_fpo_vactive = false,
        .disable_boot_optimizations = false,
        .disable_subvp_high_refresh = true,
+       .disable_dp_plus_plus_wa = true,
 };
 
 static const struct dc_debug_options debug_defaults_diags = {
index a131e30..17904de 100644 (file)
@@ -593,6 +593,10 @@ static bool detect_dp(struct dc_link *link,
                        /* DP SST branch */
                        link->type = dc_connection_sst_branch;
        } else {
+               if (link->dc->debug.disable_dp_plus_plus_wa &&
+                               link->link_enc->features.flags.bits.IS_UHBR20_CAPABLE)
+                       return false;
+
                /* DP passive dongles */
                sink_caps->signal = dp_passive_dongle_detection(link->ddc,
                                                                sink_caps,