]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
drm/amd/display: screen flickers when connected to ext monitor in clone
authorHersen Wu <hersenxs.wu@amd.com>
Wed, 20 Sep 2017 20:30:44 +0000 (16:30 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Sat, 21 Oct 2017 20:42:38 +0000 (16:42 -0400)
Signed-off-by: Hersen Wu <hersenxs.wu@amd.com>
Signed-off-by: Tony Cheng <tony.cheng@amd.com>
Reviewed-by: Hersen Wu <hersenxs.wu@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/calcs/dcn_calcs.c
drivers/gpu/drm/amd/display/dc/dc.h
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c

index 8ca6c3e4e65ade2cc93fc3da687321d2093fdf38..cc99073b7a545a20212f716b3ebd6ad70571e02b 100644 (file)
@@ -1018,9 +1018,17 @@ bool dcn_validate_bandwidth(
                context->bw.dcn.calc_clk.min_active_dram_ccm_us = (int)(v->min_active_dram_clock_change_margin);
                context->bw.dcn.calc_clk.dcfclk_deep_sleep_khz = (int)(v->dcf_clk_deep_sleep * 1000);
                context->bw.dcn.calc_clk.dcfclk_khz = (int)(v->dcfclk * 1000);
+
                context->bw.dcn.calc_clk.dispclk_khz = (int)(v->dispclk * 1000);
                if (dc->debug.max_disp_clk == true)
                        context->bw.dcn.calc_clk.dispclk_khz = (int)(dc->dcn_soc->max_dispclk_vmax0p9 * 1000);
+
+               if (context->bw.dcn.calc_clk.dispclk_khz <
+                               dc->debug.min_disp_clk_khz) {
+                       context->bw.dcn.calc_clk.dispclk_khz =
+                                       dc->debug.min_disp_clk_khz;
+               }
+
                context->bw.dcn.calc_clk.dppclk_div = (int)(v->dispclk_dppclk_ratio) == 2;
 
                for (i = 0, input_idx = 0; i < pool->pipe_count; i++) {
index 12601ffc0fe485e4d20cea2314666cb0f933b553..7a3a48179452e1399529aa892bb021d10983951e 100644 (file)
@@ -178,6 +178,7 @@ struct dc_debug {
        bool disable_pplib_wm_range;
        bool use_dml_wm;
        bool disable_pipe_split;
+       unsigned int min_disp_clk_khz;
        int sr_exit_time_dpm0_ns;
        int sr_enter_plus_exit_time_dpm0_ns;
        int sr_exit_time_ns;
index 4f124dc303dce12cf9dc406068a0c2a9b98b8512..82c82b6310ca5dc5a0e2c44eb729f781445a5934 100644 (file)
@@ -420,6 +420,9 @@ static const struct dc_debug debug_defaults_drv = {
                .force_abm_enable = false,
                .timing_trace = false,
                .clock_trace = true,
+
+               .min_disp_clk_khz = 300000,
+
                .disable_pplib_clock_request = true,
                .disable_pplib_wm_range = false,
 #if defined(CONFIG_DRM_AMD_DC_DCN1_0)