Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71e172e8 authored by Ben Widawsky's avatar Ben Widawsky Committed by Daniel Vetter
Browse files

drm/i915: Add ERR_INT to gen7 error state



ERR_INT can generate interrupts. However since most of the conditions seem
quite fatal the patch opts to simply report it in error state instead of
adding more complexity to the interrupt handler for little gain (the
bits are sticky anyway).

Signed-off-by: default avatarBen Widawsky <ben@bwidawsk.net>
Reviewed-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
Tested-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: default avatarAntti Koskipaa <antti.koskipaa@linux.intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 44f46b42
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -719,6 +719,9 @@ static int i915_error_state(struct seq_file *m, void *unused)
		seq_printf(m, "DONE_REG: 0x%08x\n", error->done_reg);
	}

	if (INTEL_INFO(dev)->gen == 7)
		seq_printf(m, "ERR_INT: 0x%08x\n", error->err_int);

	for_each_ring(ring, dev_priv, i)
		i915_ring_error_state(m, dev, error, i);

+1 −0
Original line number Diff line number Diff line
@@ -196,6 +196,7 @@ struct drm_i915_error_state {
	u32 cpu_ring_head[I915_NUM_RINGS];
	u32 cpu_ring_tail[I915_NUM_RINGS];
	u32 error; /* gen6+ */
	u32 err_int; /* gen7 */
	u32 instpm[I915_NUM_RINGS];
	u32 instps[I915_NUM_RINGS];
	u32 instdone1;
+3 −0
Original line number Diff line number Diff line
@@ -1210,6 +1210,9 @@ static void i915_capture_error_state(struct drm_device *dev)
		error->done_reg = I915_READ(DONE_REG);
	}

	if (INTEL_INFO(dev)->gen == 7)
		error->err_int = I915_READ(GEN7_ERR_INT);

	i915_gem_record_fences(dev, error);
	i915_gem_record_rings(dev, error);

+1 −0
Original line number Diff line number Diff line
@@ -500,6 +500,7 @@
#define DMA_FADD_I8XX	0x020d0

#define ERROR_GEN6	0x040a0
#define GEN7_ERR_INT	0x44040

/* GM45+ chicken bits -- debug workaround bits that may be required
 * for various sorts of correct behavior.  The top 16 bits of each are