drm/amd/display: limit display clock to 100MHz to avoid FIFO error
authorYu-ting Shen <Yu-ting.Shen@amd.com>
Fri, 7 Feb 2020 07:19:31 +0000 (15:19 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 25 Feb 2020 16:10:08 +0000 (11:10 -0500)
[Why]
when changing display clock, SMU need to use power up DFS and use
DENTIST to ramp DFS DID to switch target frequency before switching back
to bypass.

[How]
fixed the minimum display clock to 100MHz, it's W/A the same with PCO.

Signed-off-by: Yu-ting Shen <Yu-ting.Shen@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c

index 883ecd2..78971b6 100644 (file)
@@ -2786,6 +2786,9 @@ void dcn20_calculate_dlg_params(
                                                        != dm_dram_clock_change_unsupported;
        context->bw_ctx.bw.dcn.clk.dppclk_khz = 0;
 
+       if (context->bw_ctx.bw.dcn.clk.dispclk_khz < dc->debug.min_disp_clk_khz)
+               context->bw_ctx.bw.dcn.clk.dispclk_khz = dc->debug.min_disp_clk_khz;
+
        /*
         * An artifact of dml pipe split/odm is that pipes get merged back together for
         * calculation. Therefore we need to only extract for first pipe in ascending index order
index aa73025..dce4966 100644 (file)
@@ -859,6 +859,7 @@ static const struct dc_debug_options debug_defaults_drv = {
                .timing_trace = false,
                .clock_trace = true,
                .disable_pplib_clock_request = true,
+               .min_disp_clk_khz = 100000,
                .pipe_split_policy = MPC_SPLIT_AVOID_MULT_DISP,
                .force_single_disp_pipe_split = false,
                .disable_dcc = DCC_ENABLE,