Commit 5f2a404c authored by Dennis Chan's avatar Dennis Chan Committed by Alex Deucher

drm/amd/display: Disable Timing sync check in Full-Screen Video Case

[why]
If Panel max link off frame count is low, it will cause low residency
for Replay, then Disabled timing sync check in Full screen Video Case.
Reviewed-by: default avatarRobin Chen <robin.chen@amd.com>
Acked-by: default avatarHamza Mahfooz <hamza.mahfooz@amd.com>
Signed-off-by: default avatarDennis Chan <dennis.chan@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 83a79dd6
......@@ -1018,6 +1018,12 @@ enum replay_coasting_vtotal_type {
PR_COASTING_TYPE_NUM,
};
enum replay_link_off_frame_count_level {
PR_LINK_OFF_FRAME_COUNT_FAIL = 0x0,
PR_LINK_OFF_FRAME_COUNT_GOOD = 0x2,
PR_LINK_OFF_FRAME_COUNT_BEST = 0x6,
};
/*
* This is general Interface for Replay to
* set an 32 bit variable to dmub
......@@ -1041,26 +1047,48 @@ union replay_error_status {
};
struct replay_config {
bool replay_supported; // Replay feature is supported
unsigned int replay_power_opt_supported; // Power opt flags that are supported
bool replay_smu_opt_supported; // SMU optimization is supported
unsigned int replay_enable_option; // Replay enablement option
uint32_t debug_flags; // Replay debug flags
bool replay_timing_sync_supported; // Replay desync is supported
bool force_disable_desync_error_check; // Replay desync is supported
bool received_desync_error_hpd; //Replay Received Desync Error HPD.
union replay_error_status replay_error_status; // Replay error status
};
/* Replay feature flags */
/* Replay feature is supported */
bool replay_supported;
/* Power opt flags that are supported */
unsigned int replay_power_opt_supported;
/* SMU optimization is supported */
bool replay_smu_opt_supported;
/* Replay enablement option */
unsigned int replay_enable_option;
/* Replay debug flags */
uint32_t debug_flags;
/* Replay sync is supported */
bool replay_timing_sync_supported;
/* Replay Disable desync error check. */
bool force_disable_desync_error_check;
/* Replay Received Desync Error HPD. */
bool received_desync_error_hpd;
/* Replay feature is supported long vblank */
bool replay_support_fast_resync_in_ultra_sleep_mode;
/* Replay error status */
union replay_error_status replay_error_status;
};
/* Replay feature flags*/
struct replay_settings {
struct replay_config config; // Replay configuration
bool replay_feature_enabled; // Replay feature is ready for activating
bool replay_allow_active; // Replay is currently active
unsigned int replay_power_opt_active; // Power opt flags that are activated currently
bool replay_smu_opt_enable; // SMU optimization is enabled
uint16_t coasting_vtotal; // Current Coasting vtotal
uint16_t coasting_vtotal_table[PR_COASTING_TYPE_NUM]; // Coasting vtotal table
/* Replay configuration */
struct replay_config config;
/* Replay feature is ready for activating */
bool replay_feature_enabled;
/* Replay is currently active */
bool replay_allow_active;
/* Replay is currently active */
bool replay_allow_long_vblank;
/* Power opt flags that are activated currently */
unsigned int replay_power_opt_active;
/* SMU optimization is enabled */
bool replay_smu_opt_enable;
/* Current Coasting vtotal */
uint16_t coasting_vtotal;
/* Coasting vtotal table */
uint16_t coasting_vtotal_table[PR_COASTING_TYPE_NUM];
/* Maximum link off frame count */
enum replay_link_off_frame_count_level link_off_frame_count_level;
};
/* To split out "global" and "per-panel" config settings.
......
......@@ -3056,15 +3056,14 @@ struct dmub_cmd_replay_set_timing_sync_data {
* Currently the support is only for 0 or 1
*/
uint8_t panel_inst;
/**
* Explicit padding to 4 byte boundary.
* REPLAY set_timing_sync
*/
uint8_t pad[3];
uint8_t timing_sync_supported;
/**
* REPLAY set_timing_sync
* Explicit padding to 4 byte boundary.
*/
bool timing_sync_supported;
uint8_t pad[2];
};
/**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment