diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/vega10_ih.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/vega10_ih.c | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c index cdd599a08125..03b7066471f9 100644 --- a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c +++ b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c @@ -334,9 +334,11 @@ static u32 vega10_ih_get_wptr(struct amdgpu_device *adev,  	u32 wptr, tmp;  	struct amdgpu_ih_regs *ih_regs; -	if (ih == &adev->irq.ih) { +	if (ih == &adev->irq.ih || ih == &adev->irq.ih_soft) {  		/* Only ring0 supports writeback. On other rings fall back  		 * to register-based code with overflow checking below. +		 * ih_soft ring doesn't have any backing hardware registers, +		 * update wptr and return.  		 */  		wptr = le32_to_cpu(*ih->wptr_cpu); @@ -409,6 +411,9 @@ static void vega10_ih_set_rptr(struct amdgpu_device *adev,  {  	struct amdgpu_ih_regs *ih_regs; +	if (ih == &adev->irq.ih_soft) +		return; +  	if (ih->use_doorbell) {  		/* XXX check if swapping is necessary on BE */  		*ih->rptr_cpu = ih->rptr; | 
