drm/amd/display: Release AUX engine after failed acquire
authorWyatt Wood <wyatt.wood@amd.com>
Wed, 23 Feb 2022 16:22:30 +0000 (11:22 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 15 Mar 2022 18:25:15 +0000 (14:25 -0400)
[Why]
There is a sequence in which aux arbitration
doesn't work correctly. Driver is left with
aux access after it times out waiting for access.
In future dmub fw is never granted aux access
and is stuck in a while loop.

[How]
Cancel aux request from driver after timing out.

Reviewed-by: Aric Cyr <Aric.Cyr@amd.com>
Acked-by: Alan Liu <HaoPing.Liu@amd.com>
Signed-off-by: Wyatt Wood <wyatt.wood@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c

index 74b05b3..b8d6f42 100644 (file)
@@ -413,7 +413,7 @@ static bool acquire(
                return false;
 
        if (!acquire_engine(engine)) {
-               dal_ddc_close(ddc);
+               release_engine(engine);
                return false;
        }