[PATCH 1/2] drm/amdgpu: IH process reset count when restart

Christian König ckoenig.leichtzumerken at gmail.com
Mon Nov 15 13:42:21 UTC 2021


Am 13.11.21 um 01:05 schrieb Philip Yang:
> Otherwise when IH process restart, count is zero, the loop will
> not exit to wake_up_all after processing AMDGPU_IH_MAX_NUM_IVS
> interrupts.
>
> Signed-off-by: Philip Yang <Philip.Yang at amd.com>

Reviewed-by: Christian König <christian.koenig at amd.com>

Maybe even CC: stable?

Regards,
Christian.

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c
> index f3d62e196901..0c7963dfacad 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c
> @@ -223,7 +223,7 @@ int amdgpu_ih_wait_on_checkpoint_process(struct amdgpu_device *adev,
>    */
>   int amdgpu_ih_process(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih)
>   {
> -	unsigned int count = AMDGPU_IH_MAX_NUM_IVS;
> +	unsigned int count;
>   	u32 wptr;
>   
>   	if (!ih->enabled || adev->shutdown)
> @@ -232,6 +232,7 @@ int amdgpu_ih_process(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih)
>   	wptr = amdgpu_ih_get_wptr(adev, ih);
>   
>   restart_ih:
> +	count  = AMDGPU_IH_MAX_NUM_IVS;
>   	DRM_DEBUG("%s: rptr %d, wptr %d\n", __func__, ih->rptr, wptr);
>   
>   	/* Order reading of wptr vs. reading of IH ring data */



More information about the amd-gfx mailing list