]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/amd/display: always program DPPDTO unless not safe to lower
authorJake Wang <haonan.wang2@amd.com>
Fri, 11 Dec 2020 21:53:57 +0000 (16:53 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 23 Dec 2020 20:02:47 +0000 (15:02 -0500)
[Why]
We defer clock updates to after pipes have been programmed. In
some instances we use DPPCLK that have been previously set to be
"unused". This results in a brief window of time where underflow
could occur.

[How]
During prepare bandwidth allow rn_update_clocks_update_dpp_dto
to check each instance and compare previous clock to new clock.
If new clock is higher than previous clock, program DPPDTO.

Signed-off-by: Jake Wang <haonan.wang2@amd.com>
Acked-by: Bindu Ramamurthy <bindu.r@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c

index bad30217c7b47efef0e9d23dabe24880a07b1e75..01b1853b7750dfb05fcdb1cb733d8b33b3f7529e 100644 (file)
@@ -227,12 +227,11 @@ void rn_update_clocks(struct clk_mgr *clk_mgr_base,
                                        rn_vbios_smu_set_dppclk(clk_mgr, clk_mgr_base->clks.dppclk_khz);
 
                // always update dtos unless clock is lowered and not safe to lower
-               if (new_clocks->dppclk_khz >= dc->current_state->bw_ctx.bw.dcn.clk.dppclk_khz)
-                       rn_update_clocks_update_dpp_dto(
-                                       clk_mgr,
-                                       context,
-                                       clk_mgr_base->clks.actual_dppclk_khz,
-                                       safe_to_lower);
+               rn_update_clocks_update_dpp_dto(
+                               clk_mgr,
+                               context,
+                               clk_mgr_base->clks.actual_dppclk_khz,
+                               safe_to_lower);
        }
 
        if (update_dispclk &&