Commit bb90786f authored by Jimmy Kizito's avatar Jimmy Kizito Committed by Alex Deucher

drm/amd/display: Add configuration options for AUX wake work around.

[Why]
Work around to try to wake unresponsive DP sinks may need to be adjusted
for certain sinks.

[How]
Add options to disable work around or adjust time spent trying to wake
unresponsive DPRX.
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Reviewed-by: default avatarMartin Leung <Martin.Leung@amd.com>
Acked-by: default avatarTom Chung <chiahsuan.chung@amd.com>
Signed-off-by: default avatarJimmy Kizito <Jimmy.Kizito@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent ec313220
...@@ -5308,7 +5308,13 @@ static bool retrieve_link_cap(struct dc_link *link) ...@@ -5308,7 +5308,13 @@ static bool retrieve_link_cap(struct dc_link *link)
LINK_AUX_DEFAULT_LTTPR_TIMEOUT_PERIOD); LINK_AUX_DEFAULT_LTTPR_TIMEOUT_PERIOD);
/* Try to ensure AUX channel active before proceeding. */ /* Try to ensure AUX channel active before proceeding. */
status = wa_try_to_wake_dprx(link, LINK_AUX_WAKE_TIMEOUT_MS); if (link->dc->debug.aux_wake_wa.bits.enable_wa) {
uint64_t timeout_ms = link->dc->debug.aux_wake_wa.bits.timeout_ms;
if (link->dc->debug.aux_wake_wa.bits.use_default_timeout)
timeout_ms = LINK_AUX_WAKE_TIMEOUT_MS;
status = wa_try_to_wake_dprx(link, timeout_ms);
}
is_lttpr_present = dp_retrieve_lttpr_cap(link); is_lttpr_present = dp_retrieve_lttpr_cap(link);
/* Read DP tunneling information. */ /* Read DP tunneling information. */
......
...@@ -526,6 +526,22 @@ union dpia_debug_options { ...@@ -526,6 +526,22 @@ union dpia_debug_options {
uint32_t raw; uint32_t raw;
}; };
/* AUX wake work around options
* 0: enable/disable work around
* 1: use default timeout LINK_AUX_WAKE_TIMEOUT_MS
* 15-2: reserved
* 31-16: timeout in ms
*/
union aux_wake_wa_options {
struct {
uint32_t enable_wa : 1;
uint32_t use_default_timeout : 1;
uint32_t rsvd: 14;
uint32_t timeout_ms : 16;
} bits;
uint32_t raw;
};
struct dc_debug_data { struct dc_debug_data {
uint32_t ltFailCount; uint32_t ltFailCount;
uint32_t i2cErrorCount; uint32_t i2cErrorCount;
...@@ -712,6 +728,7 @@ struct dc_debug_options { ...@@ -712,6 +728,7 @@ struct dc_debug_options {
#endif #endif
bool apply_vendor_specific_lttpr_wa; bool apply_vendor_specific_lttpr_wa;
bool extended_blank_optimization; bool extended_blank_optimization;
union aux_wake_wa_options aux_wake_wa;
bool ignore_dpref_ss; bool ignore_dpref_ss;
uint8_t psr_power_use_phy_fsm; uint8_t psr_power_use_phy_fsm;
}; };
......
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