Commit 6e93d5b0 authored by Jimmy Kizito's avatar Jimmy Kizito Committed by Alex Deucher
Browse files

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 7e8906dc
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -5308,7 +5308,13 @@ static bool retrieve_link_cap(struct dc_link *link)
			LINK_AUX_DEFAULT_LTTPR_TIMEOUT_PERIOD);

	/* 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);
	/* Read DP tunneling information. */
+17 −0
Original line number Diff line number Diff line
@@ -526,6 +526,22 @@ union dpia_debug_options {
	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 {
	uint32_t ltFailCount;
	uint32_t i2cErrorCount;
@@ -712,6 +728,7 @@ struct dc_debug_options {
#endif
	bool apply_vendor_specific_lttpr_wa;
	bool extended_blank_optimization;
	union aux_wake_wa_options aux_wake_wa;
	bool ignore_dpref_ss;
	uint8_t psr_power_use_phy_fsm;
};