drm/amdgpu/display: add flag for multi-display mclk switching
authorAlex Deucher <alexander.deucher@amd.com>
Thu, 22 Aug 2019 19:17:57 +0000 (14:17 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 23 Aug 2019 16:33:00 +0000 (11:33 -0500)
Add a dcfeaturemask flag for mclk switching.  Disable by default;
enable once the feature has seen more testing.

Set amdgpu.dcfeaturemask=2 on the kernel command line in grub
to enable this.

Acked-by: Evan Quan <evan.quan@amd.com>
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
drivers/gpu/drm/amd/display/dc/calcs/dce_calcs.c
drivers/gpu/drm/amd/display/dc/dc.h
drivers/gpu/drm/amd/include/amd_shared.h

index 6590317..15e256d 100644 (file)
@@ -694,6 +694,9 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
        if (amdgpu_dc_feature_mask & DC_FBC_MASK)
                init_data.flags.fbc_support = true;
 
+       if (amdgpu_dc_feature_mask & DC_MULTI_MON_PP_MCLK_SWITCH_MASK)
+               init_data.flags.multi_mon_pp_mclk_switch = true;
+
        init_data.flags.power_down_display_on_boot = true;
 
 #ifdef CONFIG_DRM_AMD_DC_DCN2_0
index eca681d..a1d4925 100644 (file)
@@ -3025,7 +3025,10 @@ bool bw_calcs(struct dc_context *ctx,
 
        populate_initial_data(pipe, pipe_count, data);
 
-       calcs_output->all_displays_in_sync = all_displays_in_sync(pipe, pipe_count);
+       if (ctx->dc->config.multi_mon_pp_mclk_switch)
+               calcs_output->all_displays_in_sync = all_displays_in_sync(pipe, pipe_count);
+       else
+               calcs_output->all_displays_in_sync = false;
 
        if (data->number_of_displays != 0) {
                uint8_t yclk_lvl, sclk_lvl;
index 3ef269f..5d4a2a9 100644 (file)
@@ -220,7 +220,7 @@ struct dc_config {
        bool power_down_display_on_boot;
        bool edp_not_connected;
        bool forced_clocks;
-
+       bool multi_mon_pp_mclk_switch;
 };
 
 enum visual_confirm {
index a0a7211..8889aac 100644 (file)
@@ -142,6 +142,7 @@ enum PP_FEATURE_MASK {
 
 enum DC_FEATURE_MASK {
        DC_FBC_MASK = 0x1,
+       DC_MULTI_MON_PP_MCLK_SWITCH_MASK = 0x2,
 };
 
 enum amd_dpm_forced_level;