367,6 → 367,17 |
err_printf(m, "Suspend count: %u\n", error->suspend_count); |
err_printf(m, "PCI ID: 0x%04x\n", dev->pdev->device); |
err_printf(m, "IOMMU enabled?: %d\n", error->iommu); |
|
if (HAS_CSR(dev)) { |
struct intel_csr *csr = &dev_priv->csr; |
|
err_printf(m, "DMC loaded: %s\n", |
yesno(csr->dmc_payload != NULL)); |
err_printf(m, "DMC fw version: %d.%d\n", |
CSR_VERSION_MAJOR(csr->version), |
CSR_VERSION_MINOR(csr->version)); |
} |
|
err_printf(m, "EIR: 0x%08x\n", error->eir); |
err_printf(m, "IER: 0x%08x\n", error->ier); |
if (INTEL_INFO(dev)->gen >= 8) { |
863,7 → 874,7 |
struct drm_i915_private *dev_priv = dev->dev_private; |
|
if (INTEL_INFO(dev)->gen >= 6) { |
ering->rc_psmi = I915_READ(ring->mmio_base + 0x50); |
ering->rc_psmi = I915_READ(RING_PSMI_CTL(ring->mmio_base)); |
ering->fault_reg = I915_READ(RING_FAULT_REG(ring)); |
if (INTEL_INFO(dev)->gen >= 8) |
gen8_record_semaphore_state(dev_priv, error, ring, ering); |
900,7 → 911,7 |
ering->ctl = I915_READ_CTL(ring); |
|
if (I915_NEED_GFX_HWS(dev)) { |
int mmio; |
i915_reg_t mmio; |
|
if (IS_GEN7(dev)) { |
switch (ring->id) { |
1072,6 → 1083,25 |
list_for_each_entry(request, &ring->request_list, list) { |
struct drm_i915_error_request *erq; |
|
if (count >= error->ring[i].num_requests) { |
/* |
* If the ring request list was changed in |
* between the point where the error request |
* list was created and dimensioned and this |
* point then just exit early to avoid crashes. |
* |
* We don't need to communicate that the |
* request list changed state during error |
* state capture and that the error state is |
* slightly incorrect as a consequence since we |
* are typically only interested in the request |
* list state at the point of error state |
* capture, not in any changes happening during |
* the capture. |
*/ |
break; |
} |
|
erq = &error->ring[i].requests[count++]; |
erq->seqno = request->seqno; |
erq->jiffies = request->emitted_jiffies; |
1182,7 → 1212,7 |
if (IS_VALLEYVIEW(dev)) { |
error->gtier[0] = I915_READ(GTIER); |
error->ier = I915_READ(VLV_IER); |
error->forcewake = I915_READ(FORCEWAKE_VLV); |
error->forcewake = I915_READ_FW(FORCEWAKE_VLV); |
} |
|
if (IS_GEN7(dev)) |
1194,7 → 1224,7 |
} |
|
if (IS_GEN6(dev)) { |
error->forcewake = I915_READ(FORCEWAKE); |
error->forcewake = I915_READ_FW(FORCEWAKE); |
error->gab_ctl = I915_READ(GAB_CTL); |
error->gfx_mode = I915_READ(GFX_MODE); |
} |
1201,7 → 1231,7 |
|
/* 2: Registers which belong to multiple generations */ |
if (INTEL_INFO(dev)->gen >= 7) |
error->forcewake = I915_READ(FORCEWAKE_MT); |
error->forcewake = I915_READ_FW(FORCEWAKE_MT); |
|
if (INTEL_INFO(dev)->gen >= 6) { |
error->derrmr = I915_READ(DERRMR); |