drm/amd/display: limit the v_startup workaround to ASICs older than DCN3.1
authorHamza Mahfooz <hamza.mahfooz@amd.com>
Thu, 31 Aug 2023 19:22:35 +0000 (15:22 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 6 Sep 2023 18:31:33 +0000 (14:31 -0400)
Since, calling dcn20_adjust_freesync_v_startup() on DCN3.1+ ASICs
can cause the display to flicker and underflow to occur, we shouldn't
call it for them. So, ensure that the DCN version is less than
DCN_VERSION_3_1 before calling dcn20_adjust_freesync_v_startup().

Cc: stable@vger.kernel.org
Reviewed-by: Fangzhi Zuo <jerry.zuo@amd.com>
Signed-off-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c

index 1bfdf0271fdf9bb00f43d2f7f5115509e0e1cfb5..a68fb45ed48730bfadb1919a4c0d4ca687005376 100644 (file)
@@ -1099,7 +1099,8 @@ void dcn20_calculate_dlg_params(struct dc *dc,
                context->res_ctx.pipe_ctx[i].plane_res.bw.dppclk_khz =
                                                pipes[pipe_idx].clks_cfg.dppclk_mhz * 1000;
                context->res_ctx.pipe_ctx[i].pipe_dlg_param = pipes[pipe_idx].pipe.dest;
-               if (context->res_ctx.pipe_ctx[i].stream->adaptive_sync_infopacket.valid)
+               if (dc->ctx->dce_version < DCN_VERSION_3_1 &&
+                   context->res_ctx.pipe_ctx[i].stream->adaptive_sync_infopacket.valid)
                        dcn20_adjust_freesync_v_startup(
                                &context->res_ctx.pipe_ctx[i].stream->timing,
                                &context->res_ctx.pipe_ctx[i].pipe_dlg_param.vstartup_start);