diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/cik.c')
| -rw-r--r-- | drivers/gpu/drm/radeon/cik.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c index dcd4518a9b08..0b2471107137 100644 --- a/drivers/gpu/drm/radeon/cik.c +++ b/drivers/gpu/drm/radeon/cik.c @@ -7676,14 +7676,16 @@ restart_ih:  			addr = RREG32(VM_CONTEXT1_PROTECTION_FAULT_ADDR);  			status = RREG32(VM_CONTEXT1_PROTECTION_FAULT_STATUS);  			mc_client = RREG32(VM_CONTEXT1_PROTECTION_FAULT_MCCLIENT); +			/* reset addr and status */ +			WREG32_P(VM_CONTEXT1_CNTL2, 1, ~1); +			if (addr == 0x0 && status == 0x0) +				break;  			dev_err(rdev->dev, "GPU fault detected: %d 0x%08x\n", src_id, src_data);  			dev_err(rdev->dev, "  VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x%08X\n",  				addr);  			dev_err(rdev->dev, "  VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x%08X\n",  				status);  			cik_vm_decode_fault(rdev, status, addr, mc_client); -			/* reset addr and status */ -			WREG32_P(VM_CONTEXT1_CNTL2, 1, ~1);  			break;  		case 167: /* VCE */  			DRM_DEBUG("IH: VCE int: 0x%08x\n", src_data);  | 
