Commit 11dd55d1 authored by Philip Yang's avatar Philip Yang Committed by Alex Deucher
Browse files

drm/amdgpu: return IH ring drain finished if ring is empty



Sometimes IH do not setup ring wptr overflow flag after wptr exceed
rptr. As a workaround, if IH rptr equals to wptr, ring is empty,
return true to indicate IH ring checkpoint is processed, IH ring drain
is finished.

Signed-off-by: default avatarPhilip Yang <Philip.Yang@amd.com>
Reviewed-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 4999e398
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -175,7 +175,9 @@ static bool amdgpu_ih_has_checkpoint_processed(struct amdgpu_device *adev,
		cur_rptr += ih->ptr_mask + 1;
	*prev_rptr = cur_rptr;

	return cur_rptr >= checkpoint_wptr;
	/* check ring is empty to workaround missing wptr overflow flag */
	return cur_rptr >= checkpoint_wptr ||
	       (cur_rptr & ih->ptr_mask) == amdgpu_ih_get_wptr(adev, ih);
}

/**