[PATCH 6/9] drm/amdgpu/userq: handle system suspend and resume
Khatri, Sunil
sukhatri at amd.com
Fri Apr 11 16:06:04 UTC 2025
Reviewed-by: Sunil Khatri <sunil.khatri at amd.com>
On 4/11/2025 7:42 PM, Alex Deucher wrote:
> Unmap user queues on suspend and map them on resume.
>
> Signed-off-by: Alex Deucher<alexander.deucher at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index f212ce3f5d34a..e7398e70d6795 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -3507,6 +3507,9 @@ static int amdgpu_device_ip_fini_early(struct amdgpu_device *adev)
> amdgpu_device_set_cg_state(adev, AMD_CG_STATE_UNGATE);
>
> amdgpu_amdkfd_suspend(adev, false);
> +#ifdef CONFIG_DRM_AMDGPU_NAVI3X_USERQ
> + amdgpu_userq_suspend(adev);
> +#endif
>
> /* Workaround for ASICs need to disable SMC first */
> amdgpu_device_smu_fini_early(adev);
> @@ -5075,8 +5078,12 @@ int amdgpu_device_suspend(struct drm_device *dev, bool notify_clients)
>
> amdgpu_device_ip_suspend_phase1(adev);
>
> - if (!adev->in_s0ix)
> + if (!adev->in_s0ix) {
> amdgpu_amdkfd_suspend(adev, adev->in_runpm);
> +#ifdef CONFIG_DRM_AMDGPU_NAVI3X_USERQ
> + amdgpu_userq_suspend(adev);
> +#endif
> + }
>
> r = amdgpu_device_evict_resources(adev);
> if (r)
> @@ -5143,6 +5150,11 @@ int amdgpu_device_resume(struct drm_device *dev, bool notify_clients)
> r = amdgpu_amdkfd_resume(adev, adev->in_runpm);
> if (r)
> goto exit;
> +#ifdef CONFIG_DRM_AMDGPU_NAVI3X_USERQ
> + r = amdgpu_userq_resume(adev);
> + if (r)
> + goto exit;
> +#endif
> }
>
> r = amdgpu_device_ip_late_init(adev);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20250411/00ee0cae/attachment.htm>
More information about the amd-gfx
mailing list