From: James Zhu Date: Wed, 19 May 2021 15:26:32 +0000 (-0400) Subject: drm/amdgpu/vcn2.0: add cancel_delayed_work_sync before power gate X-Git-Tag: Ubuntu-5.4.0-78.87~158 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=727a3eb05d20f7c8c9ce537c9efe9c88131024b8;p=mirror_ubuntu-focal-kernel.git drm/amdgpu/vcn2.0: add cancel_delayed_work_sync before power gate 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 Reviewed-by: Leo Liu Acked-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman Signed-off-by: Kamal Mostafa Signed-off-by: Stefan Bader --- diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c index cd2cbe760e88..82327ee96f95 100644 --- a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c @@ -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)))