mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-29 09:22:53 -04:00
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: Wesley Chalmers <Wesley.Chalmers@amd.com> Reviewed-by: Jun Lei <Jun.Lei@amd.com> Acked-by: Anson Jacob <Anson.Jacob@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
1d5b15f77e
commit
95ad72f4ad
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user