From: Lewis Huang <[email protected]>

[Why]
When the vbios config and driver config are different, if we update
clock to lower before call program_timing and program_pixel_clk, garbage
appear.

[How]
Align bw context with hw config when system resume

Reviewed-by: Anthony Koo <[email protected]>
Acked-by: Agustin Gutierrez <[email protected]>
Signed-off-by: Lewis Huang <[email protected]>
---
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c 
b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
index 44d27579d898..a25732d07222 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
@@ -1378,6 +1378,12 @@ void dcn10_init_hw(struct dc *dc)
        if (dc->clk_mgr && dc->clk_mgr->funcs->init_clocks)
                dc->clk_mgr->funcs->init_clocks(dc->clk_mgr);
 
+       /* Align bw context with hw config when system resume. */
+       if (dc->clk_mgr->clks.dispclk_khz != 0 && dc->clk_mgr->clks.dppclk_khz 
!= 0) {
+               dc->current_state->bw_ctx.bw.dcn.clk.dispclk_khz = 
dc->clk_mgr->clks.dispclk_khz;
+               dc->current_state->bw_ctx.bw.dcn.clk.dppclk_khz = 
dc->clk_mgr->clks.dppclk_khz;
+       }
+
        // Initialize the dccg
        if (dc->res_pool->dccg && dc->res_pool->dccg->funcs->dccg_init)
                dc->res_pool->dccg->funcs->dccg_init(res_pool->dccg);
-- 
2.25.1

Reply via email to