diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4078-drm-amd-display-Fix-dongle_caps-containing-stale-inf.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4078-drm-amd-display-Fix-dongle_caps-containing-stale-inf.patch | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4078-drm-amd-display-Fix-dongle_caps-containing-stale-inf.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4078-drm-amd-display-Fix-dongle_caps-containing-stale-inf.patch new file mode 100644 index 00000000..897be11d --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4078-drm-amd-display-Fix-dongle_caps-containing-stale-inf.patch @@ -0,0 +1,60 @@ +From 7aa6ab215240392757a08b1ccbddfb2af54442d4 Mon Sep 17 00:00:00 2001 +From: David Galiffi <david.galiffi@amd.com> +Date: Fri, 20 Sep 2019 20:20:23 -0400 +Subject: [PATCH 4078/4256] drm/amd/display: Fix dongle_caps containing stale + information. + +[WHY] + +During detection: +function: get_active_converter_info populates link->dpcd_caps.dongle_caps +only when dpcd_rev >= DPCD_REV_11 and DWN_STRM_PORTX_TYPE is +DOWN_STREAM_DETAILED_HDMI or DOWN_STREAM_DETAILED_DP_PLUS_PLUS. +Otherwise, it is not cleared, and stale information remains. + +During mode validation: +function: dp_active_dongle_validate_timing reads +link->dpcd_caps.dongle_caps->dongle_type to determine the maximum +pixel clock to support. This information is now stale and no longer +valid. + +[HOW] +dp_active_dongle_validate_timing should be using +link->dpcd_caps->dongle_type instead. + +Signed-off-by: David Galiffi <david.galiffi@amd.com> +Reviewed-by: Jun Lei <Jun.Lei@amd.com> +Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> +--- + drivers/gpu/drm/amd/display/dc/core/dc_link.c | 2 +- + drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c +index 6fdb78a152e0..2a7fb79ad9f3 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c +@@ -2254,7 +2254,7 @@ static bool dp_active_dongle_validate_timing( + break; + } + +- if (dongle_caps->dongle_type != DISPLAY_DONGLE_DP_HDMI_CONVERTER || ++ if (dpcd_caps->dongle_type != DISPLAY_DONGLE_DP_HDMI_CONVERTER || + dongle_caps->extendedCapValid == false) + return true; + +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c +index aae204141c60..0f59b68aa4c2 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c +@@ -2575,6 +2575,7 @@ static void get_active_converter_info( + uint8_t data, struct dc_link *link) + { + union dp_downstream_port_present ds_port = { .byte = data }; ++ memset(&link->dpcd_caps.dongle_caps, 0, sizeof(link->dpcd_caps.dongle_caps)); + + /* decode converter info*/ + if (!ds_port.fields.PORT_PRESENT) { +-- +2.17.1 + |