|
@@ -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);
|