From: Vladimir Stempen <[email protected]>

[Why]
Currently we set FCLK p-state change
watermark calculated based on dummy
p-state latency when UCLK p-state is
not supported

[How]
Calculate FCLK p-state change watermark
based on on FCLK pstate change latency
in case UCLK p-state is not supported

Reviewed-by: Nevenko Stupar <[email protected]>
Acked-by: Alex Hung <[email protected]>
Signed-off-by: Vladimir Stempen <[email protected]>
---
 drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c 
b/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c
index 0dc1a03999b6..28e9f3644bf4 100644
--- a/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c
+++ b/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c
@@ -2126,6 +2126,10 @@ void dcn32_calculate_wm_and_dlg_fpu(struct dc *dc, 
struct dc_state *context,
                 */
                context->bw_ctx.bw.dcn.watermarks.a = 
context->bw_ctx.bw.dcn.watermarks.c;
                
context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.pstate_change_ns = 0;
+               /* Calculate FCLK p-state change watermark based on FCLK pstate 
change latency in case
+                * UCLK p-state is not supported, to avoid underflow in case 
FCLK pstate is supported
+                */
+               
context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.fclk_pstate_change_ns = 
get_fclk_watermark(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
        } else {
                /* Set A:
                 * All clocks min.
-- 
2.39.1

Reply via email to