Commit 95ad72f4 authored by Wesley Chalmers's avatar Wesley Chalmers Committed by Alex Deucher
Browse files

drm/amd/display: Do not count I2C DEFERs with AUX DEFERs



[WHY]
DP 2.0 SCR specifies that
"A DPTX shall distinguish I2C_DEFER|AUX_ACK from AUX_DEFER. AUX retries
due to
I2C_DEFER are not counted as part of minimum 7 retires (sic) upon
AUX_DEFER’s"

Signed-off-by: default avatarWesley Chalmers <Wesley.Chalmers@amd.com>
Reviewed-by: default avatarJun Lei <Jun.Lei@amd.com>
Acked-by: default avatarAnson Jacob <Anson.Jacob@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 1d5b15f7
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -667,12 +667,13 @@ bool dce_aux_transfer_with_retries(struct ddc_service *ddc,
			case AUX_TRANSACTION_REPLY_AUX_DEFER:
				/* polling_timeout_period is in us */
				defer_time_in_ms += aux110->polling_timeout_period / 1000;
				++aux_defer_retries;
				/* fall through */
			case AUX_TRANSACTION_REPLY_I2C_OVER_AUX_DEFER:
				retry_on_defer = true;
				fallthrough;
			case AUX_TRANSACTION_REPLY_I2C_OVER_AUX_NACK:
				if (++aux_defer_retries >= AUX_MIN_DEFER_RETRIES
				if (aux_defer_retries >= AUX_MIN_DEFER_RETRIES
						&& defer_time_in_ms >= AUX_MAX_DEFER_TIMEOUT_MS) {
					goto fail;
				} else {