]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
drm/amdgpu/vcn2.0: add cancel_delayed_work_sync before power gate
authorJames Zhu <James.Zhu@amd.com>
Wed, 19 May 2021 15:26:32 +0000 (11:26 -0400)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 18 Jun 2021 13:02:41 +0000 (15:02 +0200)
BugLink: https://bugs.launchpad.net/bugs/1931166
commit 0c6013377b4027e69d8f3e63b6bf556b6cb87802 upstream.

Add cancel_delayed_work_sync before set power gating state
to avoid race condition issue when power gating.

Signed-off-by: James Zhu <James.Zhu@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c

index cd2cbe760e883705ad82cad3e49515256a07127c..82327ee96f9532fc89ae23b60789567390451a6c 100644 (file)
@@ -293,6 +293,8 @@ static int vcn_v2_0_hw_fini(void *handle)
        struct amdgpu_ring *ring = &adev->vcn.inst->ring_dec;
        int i;
 
+       cancel_delayed_work_sync(&adev->vcn.idle_work);
+
        if ((adev->pg_flags & AMD_PG_SUPPORT_VCN_DPG) ||
            (adev->vcn.cur_state != AMD_PG_STATE_GATE &&
              RREG32_SOC15(VCN, 0, mmUVD_STATUS)))