diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 7 | 
1 files changed, 4 insertions, 3 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c index afcc6e397c72..f202b45c413c 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c @@ -5456,7 +5456,7 @@ static int gfx_v9_0_ring_preempt_ib(struct amdgpu_ring *ring)  	ring->trail_seq += 1;  	amdgpu_ring_alloc(ring, 13);  	gfx_v9_0_ring_emit_fence(ring, ring->trail_fence_gpu_addr, -				 ring->trail_seq, AMDGPU_FENCE_FLAG_EXEC); +				 ring->trail_seq, AMDGPU_FENCE_FLAG_EXEC | AMDGPU_FENCE_FLAG_INT);  	/*reset the CP_VMID_PREEMPT after trailing fence*/  	amdgpu_ring_emit_wreg(ring,  			      SOC15_REG_OFFSET(GC, 0, mmCP_VMID_PREEMPT), @@ -5882,8 +5882,9 @@ static int gfx_v9_0_eop_irq(struct amdgpu_device *adev,  	switch (me_id) {  	case 0: -		/* Fence signals are handled on the software rings*/ -		if (adev->gfx.num_gfx_rings) { +		if (adev->gfx.num_gfx_rings && +		    !amdgpu_mcbp_handle_trailing_fence_irq(&adev->gfx.muxer)) { +			/* Fence signals are handled on the software rings*/  			for (i = 0; i < GFX9_NUM_SW_GFX_RINGS; i++)  				amdgpu_fence_process(&adev->gfx.sw_gfx_ring[i]);  		} | 
