Commit 9315e239 authored by Hersen Wu's avatar Hersen Wu Committed by Alex Deucher

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: default avatarHersen Wu <hersenxs.wu@amd.com>
Reviewed-by: default avatarHarry Wentland <Harry.Wentland@amd.com>
Acked-by: default avatarLeo Li <sunpeng.li@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 5ae6fe57
...@@ -1784,12 +1784,10 @@ static void dp_test_send_link_training(struct dc_link *link) ...@@ -1784,12 +1784,10 @@ static void dp_test_send_link_training(struct dc_link *link)
dp_retrain_link_dp_test(link, &link_settings, false); 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 * (toggling on and off) with debugger break
* This caueses intermittent PHY automation failure * This caueses intermittent PHY automation failure
* Need to look into the root cause */ * 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) static void dp_test_send_phy_test_pattern(struct dc_link *link)
{ {
union phy_test_pattern dpcd_test_pattern; union phy_test_pattern dpcd_test_pattern;
...@@ -1849,13 +1847,13 @@ static void dp_test_send_phy_test_pattern(struct dc_link *link) ...@@ -1849,13 +1847,13 @@ static void dp_test_send_phy_test_pattern(struct dc_link *link)
break; break;
case PHY_TEST_PATTERN_CP2520_1: case PHY_TEST_PATTERN_CP2520_1:
/* CP2520 pattern is unstable, temporarily use TPS4 instead */ /* 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_TRAINING_PATTERN4 :
DP_TEST_PATTERN_HBR2_COMPLIANCE_EYE; DP_TEST_PATTERN_HBR2_COMPLIANCE_EYE;
break; break;
case PHY_TEST_PATTERN_CP2520_2: case PHY_TEST_PATTERN_CP2520_2:
/* CP2520 pattern is unstable, temporarily use TPS4 instead */ /* 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_TRAINING_PATTERN4 :
DP_TEST_PATTERN_HBR2_COMPLIANCE_EYE; DP_TEST_PATTERN_HBR2_COMPLIANCE_EYE;
break; break;
......
...@@ -77,6 +77,7 @@ struct dc_caps { ...@@ -77,6 +77,7 @@ struct dc_caps {
bool is_apu; bool is_apu;
bool dual_link_dvi; bool dual_link_dvi;
bool post_blend_color_processing; bool post_blend_color_processing;
bool force_dp_tps4_for_cp2520;
}; };
struct dc_dcc_surface_param { struct dc_dcc_surface_param {
......
...@@ -1127,6 +1127,8 @@ static bool construct( ...@@ -1127,6 +1127,8 @@ static bool construct(
dc->caps.max_slave_planes = 1; dc->caps.max_slave_planes = 1;
dc->caps.is_apu = true; dc->caps.is_apu = true;
dc->caps.post_blend_color_processing = false; 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) if (dc->ctx->dce_environment == DCE_ENV_PRODUCTION_DRV)
dc->debug = debug_defaults_drv; dc->debug = debug_defaults_drv;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment