[PATCH 4/4] drm/amdgpu/display: add flag for multi-display mclk switching

Quan, Evan Evan.Quan at amd.com
Fri Aug 23 03:42:07 UTC 2019


Patch1, 2 are reviewed-by: Evan Quan <evan.quan at amd.com>
Patch 3,4 are acked-by: Evan Quan <evan.quan at amd.com>

> -----Original Message-----
> From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of Alex
> Deucher
> Sent: Friday, August 23, 2019 3:31 AM
> To: amd-gfx at lists.freedesktop.org
> Cc: Deucher, Alexander <Alexander.Deucher at amd.com>
> Subject: [PATCH 4/4] drm/amdgpu/display: add flag for multi-display mclk
> switching
> 
> 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.
> 
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> ---
>  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +++
> drivers/gpu/drm/amd/display/dc/calcs/dce_calcs.c  | 5 ++++-
>  drivers/gpu/drm/amd/display/dc/dc.h               | 2 +-
>  drivers/gpu/drm/amd/include/amd_shared.h          | 1 +
>  4 files changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index 45298269744d..cb86ccf48bd9 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -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
> diff --git a/drivers/gpu/drm/amd/display/dc/calcs/dce_calcs.c
> b/drivers/gpu/drm/amd/display/dc/calcs/dce_calcs.c
> index eca681d9d7f5..a1d49256fab7 100644
> --- a/drivers/gpu/drm/amd/display/dc/calcs/dce_calcs.c
> +++ b/drivers/gpu/drm/amd/display/dc/calcs/dce_calcs.c
> @@ -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;
> diff --git a/drivers/gpu/drm/amd/display/dc/dc.h
> b/drivers/gpu/drm/amd/display/dc/dc.h
> index 3ef269f82478..5d4a2a9228f0 100644
> --- a/drivers/gpu/drm/amd/display/dc/dc.h
> +++ b/drivers/gpu/drm/amd/display/dc/dc.h
> @@ -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 {
> diff --git a/drivers/gpu/drm/amd/include/amd_shared.h
> b/drivers/gpu/drm/amd/include/amd_shared.h
> index a0a7211438f2..8889aaceec60 100644
> --- a/drivers/gpu/drm/amd/include/amd_shared.h
> +++ b/drivers/gpu/drm/amd/include/amd_shared.h
> @@ -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;
> --
> 2.20.1
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list