aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/4720-drm-amd-display-Fix-DP-HBR2-Eye-Diagram-Pattern-on-C.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/4720-drm-amd-display-Fix-DP-HBR2-Eye-Diagram-Pattern-on-C.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/4720-drm-amd-display-Fix-DP-HBR2-Eye-Diagram-Pattern-on-C.patch85
1 files changed, 85 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/4720-drm-amd-display-Fix-DP-HBR2-Eye-Diagram-Pattern-on-C.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/4720-drm-amd-display-Fix-DP-HBR2-Eye-Diagram-Pattern-on-C.patch
new file mode 100644
index 00000000..acdefaac
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/4720-drm-amd-display-Fix-DP-HBR2-Eye-Diagram-Pattern-on-C.patch
@@ -0,0 +1,85 @@
+From e511ec9c7fcc6971a09ad67cec72840270b59585 Mon Sep 17 00:00:00 2001
+From: Hersen Wu <hersenxs.wu@amd.com>
+Date: Mon, 16 Jul 2018 11:21:12 -0400
+Subject: [PATCH 4720/5725] drm/amd/display: Fix DP HBR2 Eye Diagram Pattern on
+ Carrizo
+
+[why] dp hbr2 eye diagram pattern for raven asic is not stabled.
+workaround is to use tp4 pattern. But this should not be
+applied to asic before raven.
+
+[how] add new bool varilable in asic caps. for raven asic,
+use the workaround. for carrizo, vega, do not use workaround.
+
+Signed-off-by: Hersen Wu <hersenxs.wu@amd.com>
+Reviewed-by: Harry Wentland <Harry.Wentland@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 8 +++-----
+ drivers/gpu/drm/amd/display/dc/dc.h | 1 +
+ drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c | 2 ++
+ 3 files changed, 6 insertions(+), 5 deletions(-)
+
+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 72a8a55..d14b543 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
+@@ -1771,12 +1771,10 @@ static void dp_test_send_link_training(struct dc_link *link)
+ dp_retrain_link_dp_test(link, &link_settings, false);
+ }
+
+-/* TODO hbr2 compliance eye output is unstable
++/* TODO Raven hbr2 compliance eye output is unstable
+ * (toggling on and off) with debugger break
+ * This caueses intermittent PHY automation failure
+ * Need to look into the root cause */
+-static uint8_t force_tps4_for_cp2520 = 1;
+-
+ static void dp_test_send_phy_test_pattern(struct dc_link *link)
+ {
+ union phy_test_pattern dpcd_test_pattern;
+@@ -1836,13 +1834,13 @@ static void dp_test_send_phy_test_pattern(struct dc_link *link)
+ break;
+ case PHY_TEST_PATTERN_CP2520_1:
+ /* CP2520 pattern is unstable, temporarily use TPS4 instead */
+- test_pattern = (force_tps4_for_cp2520 == 1) ?
++ test_pattern = (link->dc->caps.force_dp_tps4_for_cp2520 == 1) ?
+ DP_TEST_PATTERN_TRAINING_PATTERN4 :
+ DP_TEST_PATTERN_HBR2_COMPLIANCE_EYE;
+ break;
+ case PHY_TEST_PATTERN_CP2520_2:
+ /* CP2520 pattern is unstable, temporarily use TPS4 instead */
+- test_pattern = (force_tps4_for_cp2520 == 1) ?
++ test_pattern = (link->dc->caps.force_dp_tps4_for_cp2520 == 1) ?
+ DP_TEST_PATTERN_TRAINING_PATTERN4 :
+ DP_TEST_PATTERN_HBR2_COMPLIANCE_EYE;
+ break;
+diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h
+index 23a5045..096098e 100644
+--- a/drivers/gpu/drm/amd/display/dc/dc.h
++++ b/drivers/gpu/drm/amd/display/dc/dc.h
+@@ -77,6 +77,7 @@ struct dc_caps {
+ bool is_apu;
+ bool dual_link_dvi;
+ bool post_blend_color_processing;
++ bool force_dp_tps4_for_cp2520;
+ };
+
+ struct dc_dcc_surface_param {
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c
+index 99c223b..a2318ca 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c
+@@ -1028,6 +1028,8 @@ static bool construct(
+ dc->caps.max_slave_planes = 1;
+ dc->caps.is_apu = true;
+ dc->caps.post_blend_color_processing = false;
++ /* Raven DP PHY HBR2 eye diagram pattern is not stable. Use TP4 */
++ dc->caps.force_dp_tps4_for_cp2520 = true;
+
+ if (dc->ctx->dce_environment == DCE_ENV_PRODUCTION_DRV)
+ dc->debug = debug_defaults_drv;
+--
+2.7.4
+