[PATCH] drm/amdgpu: fix Polaris12 uvd crash on driver unload

Quan, Evan Evan.Quan at amd.com
Mon Oct 18 07:36:08 UTC 2021


[AMD Official Use Only]

Ping..

> -----Original Message-----
> From: Quan, Evan <Evan.Quan at amd.com>
> Sent: Monday, October 11, 2021 4:28 PM
> To: amd-gfx at lists.freedesktop.org
> Cc: Deucher, Alexander <Alexander.Deucher at amd.com>; Grodzovsky,
> Andrey <Andrey.Grodzovsky at amd.com>; Quan, Evan
> <Evan.Quan at amd.com>
> Subject: [PATCH] drm/amdgpu: fix Polaris12 uvd crash on driver unload
> 
> This is a supplement for the change below:
> cdccf1ffe1a3 drm/amdgpu: Fix crash on device remove/driver unload
> 
> Signed-off-by: Evan Quan <evan.quan 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