diff options
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0185-drm-amd-display-DP-compliance-automation-test-fixes.patch')
-rw-r--r-- | meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0185-drm-amd-display-DP-compliance-automation-test-fixes.patch | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0185-drm-amd-display-DP-compliance-automation-test-fixes.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0185-drm-amd-display-DP-compliance-automation-test-fixes.patch new file mode 100644 index 00000000..2b8ceb16 --- /dev/null +++ b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0185-drm-amd-display-DP-compliance-automation-test-fixes.patch @@ -0,0 +1,106 @@ +From 2e8326ef7cbfe0370efdfca7dd0d5b95e7bfb739 Mon Sep 17 00:00:00 2001 +From: Leon Elazar <leon.elazar@amd.com> +Date: Thu, 26 Jan 2017 18:03:16 -0500 +Subject: [PATCH 0185/4131] drm/amd/display: DP compliance automation test + fixes + +Fixes: +1. Removing pending flag since we are executing teh entire flow without context switches +2. Adding stream enablment - connection between DIG BE to DIG FE during test link training + +Signed-off-by: Leon Elazar <leon.elazar@amd.com> +Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> +Acked-by: Harry Wentland <Harry.Wentland@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 19 +------------------ + drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c | 4 ++++ + drivers/gpu/drm/amd/display/dc/dc_dp_types.h | 3 +-- + 3 files changed, 6 insertions(+), 20 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 bc0667d..96d69b4 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 +@@ -1738,8 +1738,7 @@ static void handle_automated_test(struct core_link *link) + } + if (test_request.bits.LINK_TEST_PATTRN) { + dp_test_send_link_test_pattern(link); +- link->public.compliance_test_state.bits. +- SET_TEST_PATTERN_PENDING = 1; ++ test_response.bits.ACK = 1; + } + if (test_request.bits.PHY_TEST_PATTERN) { + dp_test_send_phy_test_pattern(link); +@@ -2308,11 +2307,9 @@ bool dc_link_dp_set_test_pattern( + unsigned int i; + unsigned char link_qual_pattern[LANE_COUNT_DP_MAX] = {0}; + union dpcd_training_pattern training_pattern; +- union test_response test_response; + enum dpcd_phy_test_patterns pattern; + + memset(&training_pattern, 0, sizeof(training_pattern)); +- memset(&test_response, 0, sizeof(test_response)); + + for (i = 0; i < MAX_PIPES; i++) { + if (pipes[i].stream->sink->link == core_link) { +@@ -2442,20 +2439,6 @@ bool dc_link_dp_set_test_pattern( + set_crtc_test_pattern(core_link, &pipe_ctx, test_pattern); + /* Set Test Pattern state */ + core_link->public.test_pattern_enabled = true; +- +- /* If this is called because of compliance test request, +- * we respond ack here. +- */ +- if (core_link->public.compliance_test_state.bits. +- SET_TEST_PATTERN_PENDING == 1) { +- core_link->public.compliance_test_state.bits. +- SET_TEST_PATTERN_PENDING = 0; +- test_response.bits.ACK = 1; +- core_link_write_dpcd(core_link, +- DP_TEST_RESPONSE, +- &test_response.raw, +- sizeof(test_response)); +- } + } + + return true; +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c +index b0ac94d..3b81459 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c +@@ -251,6 +251,8 @@ void dp_retrain_link_dp_test(struct core_link *link, + + dp_receiver_power_ctrl(link, false); + ++ link->dc->hwss.disable_stream(&pipes[i]); ++ + link->link_enc->funcs->disable_output( + link->link_enc, + SIGNAL_TYPE_DISPLAY_PORT); +@@ -273,6 +275,8 @@ void dp_retrain_link_dp_test(struct core_link *link, + + link->public.cur_link_settings = *link_setting; + ++ link->dc->hwss.enable_stream(&pipes[i]); ++ + link->dc->hwss.unblank_stream(&pipes[i], + link_setting); + } +diff --git a/drivers/gpu/drm/amd/display/dc/dc_dp_types.h b/drivers/gpu/drm/amd/display/dc/dc_dp_types.h +index 1666f10..cd2323a 100644 +--- a/drivers/gpu/drm/amd/display/dc/dc_dp_types.h ++++ b/drivers/gpu/drm/amd/display/dc/dc_dp_types.h +@@ -432,8 +432,7 @@ union phy_test_pattern { + union compliance_test_state { + struct { + unsigned char STEREO_3D_RUNNING : 1; +- unsigned char SET_TEST_PATTERN_PENDING : 1; +- unsigned char RESERVED : 6; ++ unsigned char RESERVED : 7; + } bits; + unsigned char raw; + }; +-- +2.7.4 + |