| From 11a473ffadfa097590eca6079b4521b629d4ea20 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 18 Jan 2022 10:47:28 -0800 |
| Subject: drm/msm/dp: stop link training after link training 2 failed |
| |
| From: Kuogee Hsieh <quic_khsieh@quicinc.com> |
| |
| [ Upstream commit 9051d629dbf7a998a40f7eac65a9512b01bc3bb8 ] |
| |
| Each DP link training contains link training 1 followed by link |
| training 2. There is maximum of 5 retries of DP link training |
| before declared link training failed. It is required to stop link |
| training at end of link training 2 if it is failed so that next |
| link training 1 can start freshly. This patch fixes link compliance |
| test case 4.3.1.13 (Source Device Link Training EQ Fallback Test). |
| |
| Changes in v10: |
| -- group into one series |
| |
| Changes in v11: |
| -- drop drm/msm/dp: dp_link_parse_sink_count() return immediately if aux read |
| |
| Fixes: 2e0adc765d88 ("drm/msm/dp: do not end dp link training until video is ready") |
| Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com> |
| Reviewed-by: Stephen Boyd <swboyd@chromium.org> |
| Link: https://lore.kernel.org/r/1642531648-8448-5-git-send-email-quic_khsieh@quicinc.com |
| Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/gpu/drm/msm/dp/dp_ctrl.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| diff --git a/drivers/gpu/drm/msm/dp/dp_ctrl.c b/drivers/gpu/drm/msm/dp/dp_ctrl.c |
| index 62e75dc8afc6..4af281d97493 100644 |
| --- a/drivers/gpu/drm/msm/dp/dp_ctrl.c |
| +++ b/drivers/gpu/drm/msm/dp/dp_ctrl.c |
| @@ -1744,6 +1744,9 @@ int dp_ctrl_on_link(struct dp_ctrl *dp_ctrl) |
| /* end with failure */ |
| break; /* lane == 1 already */ |
| } |
| + |
| + /* stop link training before start re training */ |
| + dp_ctrl_clear_training_pattern(ctrl); |
| } |
| } |
| |
| -- |
| 2.34.1 |
| |