Commit 6ba5a269 authored by Alvin Lee's avatar Alvin Lee Committed by Alex Deucher
Browse files

drm/amd/display: Update vactive margin and max vblank for fpo + vactive



[Description]
- Some 1920x1080@60hz displays have VBLANK time > 600us which we
  still want to accept for FPO + Vactive configs based on testing
	- Increase max VBLANK time to 1000us to allow these configs
	  for FPO + Vactive
- Increase minimum vactive switch margin for FPO + Vactive to 200us
	- Based on testing, 1920x1080@120hz can have a switch margin
	  of ~160us which requires significantly longer FPO stretch
	  margin (5ms) which we don't want to accept for now
- Also move margins into debug option

Reviewed-by: default avatarJun Lei <jun.lei@amd.com>
Reviewed-by: default avatarNevenko Stupar <nevenko.stupar@amd.com>
Acked-by: default avatarAurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: default avatarAlvin Lee <alvin.lee2@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 1d8355ad
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -893,6 +893,8 @@ struct dc_debug_options {
	bool minimize_dispclk_using_odm;
	bool disable_subvp_high_refresh;
	bool disable_dp_plus_plus_wa;
	uint32_t fpo_vactive_min_active_margin_us;
	uint32_t fpo_vactive_max_blank_us;
};

struct gpu_info_soc_bounding_box_v1_0;
+2 −0
Original line number Diff line number Diff line
@@ -730,6 +730,8 @@ static const struct dc_debug_options debug_defaults_drv = {
	.disable_boot_optimizations = false,
	.disable_subvp_high_refresh = true,
	.disable_dp_plus_plus_wa = true,
	.fpo_vactive_min_active_margin_us = 200,
	.fpo_vactive_max_blank_us = 1000,
};

static const struct dc_debug_options debug_defaults_diags = {
+0 −1
Original line number Diff line number Diff line
@@ -39,7 +39,6 @@
#define DCN3_2_MBLK_HEIGHT_8BPE 64
#define DCN3_2_VMIN_DISPCLK_HZ 717000000
#define DCN3_2_DCFCLK_DS_INIT_KHZ 10000 // Choose 10Mhz for init DCFCLK DS freq
#define DCN3_2_MIN_ACTIVE_SWITCH_MARGIN_FPO_US 100 // Only allow FPO + Vactive if active margin >= 100
#define SUBVP_HIGH_REFRESH_LIST_LEN 3
#define DCN3_2_MAX_SUBVP_PIXEL_RATE_MHZ 1800

+1 −1
Original line number Diff line number Diff line
@@ -626,7 +626,7 @@ struct dc_stream_state *dcn32_can_support_mclk_switch_using_fw_based_vblank_stre
		DC_FP_END();

		DC_FP_START();
		is_fpo_vactive = dcn32_find_vactive_pipe(dc, context, DCN3_2_MIN_ACTIVE_SWITCH_MARGIN_FPO_US);
		is_fpo_vactive = dcn32_find_vactive_pipe(dc, context, dc->debug.fpo_vactive_min_active_margin_us);
		DC_FP_END();
		if (!is_fpo_vactive || dc->debug.disable_fpo_vactive)
			return NULL;
+2 −0
Original line number Diff line number Diff line
@@ -728,6 +728,8 @@ static const struct dc_debug_options debug_defaults_drv = {
	.disable_fpo_vactive = false,
	.disable_boot_optimizations = false,
	.disable_subvp_high_refresh = true,
	.fpo_vactive_min_active_margin_us = 200,
	.fpo_vactive_max_blank_us = 1000,
};

static const struct dc_debug_options debug_defaults_diags = {
Loading