drm/amd/display: extending AUX SW Timeout
[Why] AUX takes longer to reply when using active DP-DVI dongle on some asics resulting in up to 2000+ us edid read (timeout). [How] 1. Adjust AUX poll to match spec 2. Extend the SW timeout. This does not affect normal operation since we exit the loop as soon as AUX acks. Signed-off-by: Martin Leung <martin.leung@amd.com> Reviewed-by: Jun Lei <Jun.Lei@amd.com> Acked-by: Joshua Aberback <Joshua.Aberback@amd.com> Acked-by: Leo Li <sunpeng.li@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
543c364d8e
commit
f4bbebf8e7
@ -190,6 +190,12 @@ static void submit_channel_request(
|
|||||||
1,
|
1,
|
||||||
0);
|
0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
REG_UPDATE(AUX_INTERRUPT_CONTROL, AUX_SW_DONE_ACK, 1);
|
||||||
|
|
||||||
|
REG_WAIT(AUX_SW_STATUS, AUX_SW_DONE, 0,
|
||||||
|
10, aux110->timeout_period/10);
|
||||||
|
|
||||||
/* set the delay and the number of bytes to write */
|
/* set the delay and the number of bytes to write */
|
||||||
|
|
||||||
/* The length include
|
/* The length include
|
||||||
@ -242,9 +248,6 @@ static void submit_channel_request(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
REG_UPDATE(AUX_INTERRUPT_CONTROL, AUX_SW_DONE_ACK, 1);
|
|
||||||
REG_WAIT(AUX_SW_STATUS, AUX_SW_DONE, 0,
|
|
||||||
10, aux110->timeout_period/10);
|
|
||||||
REG_UPDATE(AUX_SW_CONTROL, AUX_SW_GO, 1);
|
REG_UPDATE(AUX_SW_CONTROL, AUX_SW_GO, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,11 +71,11 @@ enum { /* This is the timeout as defined in DP 1.2a,
|
|||||||
* at most within ~240usec. That means,
|
* at most within ~240usec. That means,
|
||||||
* increasing this timeout will not affect normal operation,
|
* increasing this timeout will not affect normal operation,
|
||||||
* and we'll timeout after
|
* and we'll timeout after
|
||||||
* SW_AUX_TIMEOUT_PERIOD_MULTIPLIER * AUX_TIMEOUT_PERIOD = 1600usec.
|
* SW_AUX_TIMEOUT_PERIOD_MULTIPLIER * AUX_TIMEOUT_PERIOD = 2400usec.
|
||||||
* This timeout is especially important for
|
* This timeout is especially important for
|
||||||
* resume from S3 and CTS.
|
* converters, resume from S3, and CTS.
|
||||||
*/
|
*/
|
||||||
SW_AUX_TIMEOUT_PERIOD_MULTIPLIER = 4
|
SW_AUX_TIMEOUT_PERIOD_MULTIPLIER = 6
|
||||||
};
|
};
|
||||||
|
|
||||||
struct dce_aux {
|
struct dce_aux {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user