1 |
From b53e041d8e4308f7324999398aec092dbcb130f5 Mon Sep 17 00:00:00 2001 |
2 |
From: Dale Zhao <dale.zhao@amd.com> |
3 |
Date: Fri, 16 Jul 2021 09:38:17 +0800 |
4 |
Subject: drm/amd/display: ensure dentist display clock update finished in DCN20 |
5 |
|
6 |
From: Dale Zhao <dale.zhao@amd.com> |
7 |
|
8 |
commit b53e041d8e4308f7324999398aec092dbcb130f5 upstream. |
9 |
|
10 |
[Why] |
11 |
We don't check DENTIST_DISPCLK_CHG_DONE to ensure dentist |
12 |
display clockis updated to target value. In some scenarios with large |
13 |
display clock margin, it will deliver unfinished display clock and cause |
14 |
issues like display black screen. |
15 |
|
16 |
[How] |
17 |
Checking DENTIST_DISPCLK_CHG_DONE to ensure display clock |
18 |
has been update to target value before driver do other clock related |
19 |
actions. |
20 |
|
21 |
Reviewed-by: Cyr Aric <aric.cyr@amd.com> |
22 |
Acked-by: Solomon Chiu <solomon.chiu@amd.com> |
23 |
Signed-off-by: Dale Zhao <dale.zhao@amd.com> |
24 |
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> |
25 |
Signed-off-by: Alex Deucher <alexander.deucher@amd.com> |
26 |
Cc: stable@vger.kernel.org |
27 |
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
28 |
--- |
29 |
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c | 2 +- |
30 |
1 file changed, 1 insertion(+), 1 deletion(-) |
31 |
|
32 |
--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c |
33 |
+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c |
34 |
@@ -135,7 +135,7 @@ void dcn20_update_clocks_update_dentist( |
35 |
|
36 |
REG_UPDATE(DENTIST_DISPCLK_CNTL, |
37 |
DENTIST_DISPCLK_WDIVIDER, dispclk_wdivider); |
38 |
-// REG_WAIT(DENTIST_DISPCLK_CNTL, DENTIST_DISPCLK_CHG_DONE, 1, 5, 100); |
39 |
+ REG_WAIT(DENTIST_DISPCLK_CNTL, DENTIST_DISPCLK_CHG_DONE, 1, 50, 1000); |
40 |
REG_UPDATE(DENTIST_DISPCLK_CNTL, |
41 |
DENTIST_DPPCLK_WDIVIDER, dppclk_wdivider); |
42 |
REG_WAIT(DENTIST_DISPCLK_CNTL, DENTIST_DPPCLK_CHG_DONE, 1, 5, 100); |