Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d99f38ae authored by Alex Deucher's avatar Alex Deucher
Browse files

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.

Acked-by: default avatarEvan Quan <evan.quan@amd.com>
Reviewed-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 8b2608f1
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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
+4 −1
Original line number Diff line number Diff line
@@ -3025,7 +3025,10 @@ bool bw_calcs(struct dc_context *ctx,

	populate_initial_data(pipe, pipe_count, data);

	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;
+1 −1
Original line number Diff line number Diff line
@@ -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 {
+1 −0
Original line number Diff line number Diff line
@@ -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;