From: Wenjing Liu <Wenjing.Liu@xxxxxxx> [Description] There is an intermittent issue where driver fails aux channel error DP compliance test. The test will fail to reply aux messages and expect driver to retry. Driver misinterprets it as an Nack and doesn't retry. Driver resets AUX_SW_DONE and assumes it will take effect immediately. In some cases, the AUX_SW_DONE will not be updated before drivers check if the current transaction is done. Driver reads the previous set done bit and thinks reply is obtained. Signed-off-by: Wenjing Liu <Wenjing.Liu at amd.com> Acked-by: Harry Wentland <harry.wentland at amd.com> --- drivers/gpu/drm/amd/dal/dc/i2caux/dce110/aux_engine_dce110.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/dal/dc/i2caux/dce110/aux_engine_dce110.c b/drivers/gpu/drm/amd/dal/dc/i2caux/dce110/aux_engine_dce110.c index 79d67691ca63..c112bdd5e7ab 100644 --- a/drivers/gpu/drm/amd/dal/dc/i2caux/dce110/aux_engine_dce110.c +++ b/drivers/gpu/drm/amd/dal/dc/i2caux/dce110/aux_engine_dce110.c @@ -249,7 +249,8 @@ 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); } -- 2.10.1