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 { ...@@ -1018,6 +1018,12 @@ enum replay_coasting_vtotal_type {
PR_COASTING_TYPE_NUM, 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 * This is general Interface for Replay to
* set an 32 bit variable to dmub * set an 32 bit variable to dmub
...@@ -1041,26 +1047,48 @@ union replay_error_status { ...@@ -1041,26 +1047,48 @@ union replay_error_status {
}; };
struct replay_config { struct replay_config {
bool replay_supported; // Replay feature is supported /* Replay feature is supported */
unsigned int replay_power_opt_supported; // Power opt flags that are supported bool replay_supported;
bool replay_smu_opt_supported; // SMU optimization is supported /* Power opt flags that are supported */
unsigned int replay_enable_option; // Replay enablement option unsigned int replay_power_opt_supported;
uint32_t debug_flags; // Replay debug flags /* SMU optimization is supported */
bool replay_timing_sync_supported; // Replay desync is supported bool replay_smu_opt_supported;
bool force_disable_desync_error_check; // Replay desync is supported /* Replay enablement option */
bool received_desync_error_hpd; //Replay Received Desync Error HPD. unsigned int replay_enable_option;
union replay_error_status replay_error_status; // Replay error status /* Replay debug flags */
}; uint32_t debug_flags;
/* Replay sync is supported */
/* Replay feature flags */ 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_settings {
struct replay_config config; // Replay configuration /* Replay configuration */
bool replay_feature_enabled; // Replay feature is ready for activating struct replay_config config;
bool replay_allow_active; // Replay is currently active /* Replay feature is ready for activating */
unsigned int replay_power_opt_active; // Power opt flags that are activated currently bool replay_feature_enabled;
bool replay_smu_opt_enable; // SMU optimization is enabled /* Replay is currently active */
uint16_t coasting_vtotal; // Current Coasting vtotal bool replay_allow_active;
uint16_t coasting_vtotal_table[PR_COASTING_TYPE_NUM]; // Coasting vtotal table /* 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. /* To split out "global" and "per-panel" config settings.
......
...@@ -3056,15 +3056,14 @@ struct dmub_cmd_replay_set_timing_sync_data { ...@@ -3056,15 +3056,14 @@ struct dmub_cmd_replay_set_timing_sync_data {
* Currently the support is only for 0 or 1 * Currently the support is only for 0 or 1
*/ */
uint8_t panel_inst; 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