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