[PATCH] drm/amdgpu: fix uvd crash on Polaris12 during driver unloading
Alex Deucher
alexdeucher at gmail.com
Thu Nov 4 13:38:33 UTC 2021
On Thu, Nov 4, 2021 at 4:20 AM Evan Quan <evan.quan at amd.com> wrote:
>
> There was a change(below) target for such issue:
> cdccf1ffe1a3 drm/amdgpu: Fix crash on device remove/driver unload
proper formatting for a patch reference:
cdccf1ffe1a3 ("drm/amdgpu: Fix crash on device remove/driver unload")
> But the fix for VI ASICs was missing there. This is a supplement for
> that.
>
Fixes: cdccf1ffe1a3 ("drm/amdgpu: Fix crash on device remove/driver unload")
> Signed-off-by: Evan Quan <evan.quan at amd.com>
With the above comments addressed,
Acked-by: Alex Deucher <alexander.deucher at amd.com>
> Change-Id: Iedc25e2f572f04772511d56781b01b481e22fd00
> ---
> drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 24 +++++++++++++-----------
> 1 file changed, 13 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c b/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c
> index d5d023a24269..2d558c2f417d 100644
> --- a/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c
> @@ -534,6 +534,19 @@ static int uvd_v6_0_hw_fini(void *handle)
> {
> struct amdgpu_device *adev = (struct amdgpu_device *)handle;
>
> + cancel_delayed_work_sync(&adev->uvd.idle_work);
> +
> + if (RREG32(mmUVD_STATUS) != 0)
> + uvd_v6_0_stop(adev);
> +
> + return 0;
> +}
> +
> +static int uvd_v6_0_suspend(void *handle)
> +{
> + int r;
> + struct amdgpu_device *adev = (struct amdgpu_device *)handle;
> +
> /*
> * Proper cleanups before halting the HW engine:
> * - cancel the delayed idle work
> @@ -558,17 +571,6 @@ static int uvd_v6_0_hw_fini(void *handle)
> AMD_CG_STATE_GATE);
> }
>
> - if (RREG32(mmUVD_STATUS) != 0)
> - uvd_v6_0_stop(adev);
> -
> - return 0;
> -}
> -
> -static int uvd_v6_0_suspend(void *handle)
> -{
> - int r;
> - struct amdgpu_device *adev = (struct amdgpu_device *)handle;
> -
> r = uvd_v6_0_hw_fini(adev);
> if (r)
> return r;
> --
> 2.29.0
>
More information about the amd-gfx
mailing list