mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
drm/amd/display: support main link off before specific vertical line
[Why] Some panels request main link off before specific vertical line. If source turn off main link after specific vertical line then panel defect will be exposed. [How] Add interface to support turn off main link before specific vertical line Reviewed-by: Robin Chen <robin.chen@amd.com> Acked-by: Stylon Wang <stylon.wang@amd.com> Signed-off-by: Paul Hsieh <paul.hsieh@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
73c57a0aa7
commit
fae058b4d8
|
|
@ -35,6 +35,7 @@
|
|||
|
||||
static const uint8_t DP_SINK_DEVICE_STR_ID_1[] = {7, 1, 8, 7, 3};
|
||||
static const uint8_t DP_SINK_DEVICE_STR_ID_2[] = {7, 1, 8, 7, 5};
|
||||
static const uint8_t DP_SINK_DEVICE_STR_ID_3[] = {0x42, 0x61, 0x6c, 0x73, 0x61};
|
||||
|
||||
/*
|
||||
* Convert dmcub psr state to dmcu psr state.
|
||||
|
|
@ -295,7 +296,7 @@ static bool dmub_psr_copy_settings(struct dmub_psr *dmub,
|
|||
struct psr_context *psr_context,
|
||||
uint8_t panel_inst)
|
||||
{
|
||||
union dmub_rb_cmd cmd;
|
||||
union dmub_rb_cmd cmd = { 0 };
|
||||
struct dc_context *dc = dmub->ctx;
|
||||
struct dmub_cmd_psr_copy_settings_data *copy_settings_data
|
||||
= &cmd.psr_copy_settings.psr_copy_settings_data;
|
||||
|
|
@ -408,6 +409,13 @@ static bool dmub_psr_copy_settings(struct dmub_psr *dmub,
|
|||
else
|
||||
copy_settings_data->debug.bitfields.force_wakeup_by_tps3 = 0;
|
||||
|
||||
if (link->psr_settings.psr_version == DC_PSR_VERSION_1 &&
|
||||
link->dpcd_caps.sink_dev_id == DP_DEVICE_ID_0022B9 &&
|
||||
!memcmp(link->dpcd_caps.sink_dev_id_str, DP_SINK_DEVICE_STR_ID_3,
|
||||
sizeof(DP_SINK_DEVICE_STR_ID_3))) {
|
||||
copy_settings_data->poweroff_before_vertical_line = 16;
|
||||
}
|
||||
|
||||
//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)
|
||||
|
|
|
|||
|
|
@ -2283,9 +2283,9 @@ struct dmub_cmd_psr_copy_settings_data {
|
|||
*/
|
||||
uint16_t dsc_slice_height;
|
||||
/**
|
||||
* Explicit padding to 4 byte boundary.
|
||||
* Some panels request main link off before xth vertical line
|
||||
*/
|
||||
uint16_t pad;
|
||||
uint16_t poweroff_before_vertical_line;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@
|
|||
#define DP_BRANCH_HW_REV_10 0x10
|
||||
#define DP_BRANCH_HW_REV_20 0x20
|
||||
|
||||
#define DP_DEVICE_ID_0022B9 0x0022B9
|
||||
#define DP_DEVICE_ID_38EC11 0x38EC11
|
||||
#define DP_DEVICE_ID_BA4159 0xBA4159
|
||||
#define DP_FORCE_PSRSU_CAPABILITY 0x40F
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user