mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-23 15:38:02 -04:00
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: Robin Chen <robin.chen@amd.com> Acked-by: Hamza Mahfooz <hamza.mahfooz@amd.com> Signed-off-by: Dennis Chan <dennis.chan@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
83a79dd6f4
commit
5f2a404cbc
@@ -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 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 */
|
||||
/* 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.
|
||||
*/
|
||||
uint8_t pad[3];
|
||||
/**
|
||||
* REPLAY set_timing_sync
|
||||
*/
|
||||
bool timing_sync_supported;
|
||||
uint8_t timing_sync_supported;
|
||||
/**
|
||||
* Explicit padding to 4 byte boundary.
|
||||
*/
|
||||
uint8_t pad[2];
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user