]> www.infradead.org Git - users/hch/misc.git/commitdiff
drm/amdgpu/vpe: cancel delayed work in hw_fini
authorAlex Deucher <alexander.deucher@amd.com>
Mon, 25 Aug 2025 13:35:07 +0000 (09:35 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 27 Aug 2025 17:57:51 +0000 (13:57 -0400)
We need to cancel any outstanding work at both suspend
and driver teardown. Move the cancel to hw_fini which
gets called in both cases.

Reviewed-by: David (Ming Qiang) Wu <David.Wu3@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c

index 86573c8d9b91ea67d91f3e3bd10e863f38006474..474bfe36c0c2f58087c8ffc68df2e35e5fddeb9f 100644 (file)
@@ -436,6 +436,8 @@ static int vpe_hw_fini(struct amdgpu_ip_block *ip_block)
        struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_vpe *vpe = &adev->vpe;
 
+       cancel_delayed_work_sync(&adev->vpe.idle_work);
+
        vpe_ring_stop(vpe);
 
        /* Power off VPE */
@@ -446,10 +448,6 @@ static int vpe_hw_fini(struct amdgpu_ip_block *ip_block)
 
 static int vpe_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       cancel_delayed_work_sync(&adev->vpe.idle_work);
-
        return vpe_hw_fini(ip_block);
 }