Commit 1a2b886b authored by Ryan Lin's avatar Ryan Lin Committed by Alex Deucher

drm/amd/display: Waiting for 1 frame to fix the flash issue on PSR1

[Why]
Needs more frames waiting before the PSR_Exit sending for the specific
TCON.

[How]
Add relock_delay_frame_cnt to control how many frames waiting are needed
before the PSR_Exit sending. The default value is 0. The Driver side can
set this variable for specific TCONs.
Reviewed-by: default avatarRobin Chen <robin.chen@amd.com>
Acked-by: default avatarAlan Liu <HaoPing.Liu@amd.com>
Signed-off-by: default avatarRyan Lin <tsung-hua.lin@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 5abb360b
...@@ -413,6 +413,11 @@ static bool dmub_psr_copy_settings(struct dmub_psr *dmub, ...@@ -413,6 +413,11 @@ static bool dmub_psr_copy_settings(struct dmub_psr *dmub,
else else
copy_settings_data->debug.bitfields.force_wakeup_by_tps3 = 0; copy_settings_data->debug.bitfields.force_wakeup_by_tps3 = 0;
//WA for PSR1 on specific TCON, require frame delay for frame re-lock
copy_settings_data->relock_delay_frame_cnt = 0;
if (link->dpcd_caps.sink_dev_id == DP_BRANCH_DEVICE_ID_001CF8)
copy_settings_data->relock_delay_frame_cnt = 2;
dc_dmub_srv_cmd_queue(dc->dmub_srv, &cmd); dc_dmub_srv_cmd_queue(dc->dmub_srv, &cmd);
dc_dmub_srv_cmd_execute(dc->dmub_srv); dc_dmub_srv_cmd_execute(dc->dmub_srv);
dc_dmub_srv_wait_idle(dc->dmub_srv); dc_dmub_srv_wait_idle(dc->dmub_srv);
......
...@@ -1876,10 +1876,14 @@ struct dmub_cmd_psr_copy_settings_data { ...@@ -1876,10 +1876,14 @@ struct dmub_cmd_psr_copy_settings_data {
* Use FSM state for PSR power up/down * Use FSM state for PSR power up/down
*/ */
uint8_t use_phy_fsm; uint8_t use_phy_fsm;
/**
* frame delay for frame re-lock
*/
uint8_t relock_delay_frame_cnt;
/** /**
* Explicit padding to 2 byte boundary. * Explicit padding to 2 byte boundary.
*/ */
uint8_t pad3[2]; uint8_t pad3;
}; };
/** /**
......
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