Loading drivers/gpu/drm/i915/i915_debugfs.c +14 −9 Original line number Diff line number Diff line Loading @@ -805,18 +805,23 @@ static int i915_error_state(struct seq_file *m, void *unused) } } if (error->ringbuffer) { struct drm_i915_error_object *obj = error->ringbuffer; seq_printf(m, "--- ringbuffer = 0x%08x\n", obj->gtt_offset); for (i = 0; i < ARRAY_SIZE(error->ringbuffer); i++) { if (error->ringbuffer[i]) { struct drm_i915_error_object *obj = error->ringbuffer[i]; seq_printf(m, "%s --- ringbuffer = 0x%08x\n", dev_priv->ring[i].name, obj->gtt_offset); offset = 0; for (page = 0; page < obj->page_count; page++) { for (elt = 0; elt < PAGE_SIZE/4; elt++) { seq_printf(m, "%08x : %08x\n", offset, obj->pages[page][elt]); seq_printf(m, "%08x : %08x\n", offset, obj->pages[page][elt]); offset += 4; } } } } if (error->overlay) intel_overlay_print_error_state(m, error->overlay); Loading drivers/gpu/drm/i915/i915_drv.h +1 −1 Original line number Diff line number Diff line Loading @@ -174,7 +174,7 @@ struct drm_i915_error_state { int page_count; u32 gtt_offset; u32 *pages[0]; } *ringbuffer, *batchbuffer[I915_NUM_RINGS]; } *ringbuffer[I915_NUM_RINGS], *batchbuffer[I915_NUM_RINGS]; struct drm_i915_error_buffer { u32 size; u32 name; Loading drivers/gpu/drm/i915/i915_irq.c +14 −8 Original line number Diff line number Diff line Loading @@ -648,9 +648,14 @@ static void i915_error_state_free(struct drm_device *dev, struct drm_i915_error_state *error) { i915_error_object_free(error->batchbuffer[0]); i915_error_object_free(error->batchbuffer[1]); i915_error_object_free(error->ringbuffer); int i; for (i = 0; i < ARRAY_SIZE(error->batchbuffer); i++) i915_error_object_free(error->batchbuffer[i]); for (i = 0; i < ARRAY_SIZE(error->ringbuffer); i++) i915_error_object_free(error->ringbuffer[i]); kfree(error->active_bo); kfree(error->overlay); kfree(error); Loading Loading @@ -824,15 +829,16 @@ static void i915_capture_error_state(struct drm_device *dev) } i915_gem_record_fences(dev, error); /* Record the active batchbuffers */ for (i = 0; i < I915_NUM_RINGS; i++) /* Record the active batch and ring buffers */ for (i = 0; i < I915_NUM_RINGS; i++) { error->batchbuffer[i] = i915_error_first_batchbuffer(dev_priv, &dev_priv->ring[i]); /* Record the ringbuffer */ error->ringbuffer = i915_error_object_create(dev_priv, dev_priv->ring[RCS].obj); error->ringbuffer[i] = i915_error_object_create(dev_priv, dev_priv->ring[i].obj); } /* Record buffers on the active and pinned lists. */ error->active_bo = NULL; Loading Loading
drivers/gpu/drm/i915/i915_debugfs.c +14 −9 Original line number Diff line number Diff line Loading @@ -805,18 +805,23 @@ static int i915_error_state(struct seq_file *m, void *unused) } } if (error->ringbuffer) { struct drm_i915_error_object *obj = error->ringbuffer; seq_printf(m, "--- ringbuffer = 0x%08x\n", obj->gtt_offset); for (i = 0; i < ARRAY_SIZE(error->ringbuffer); i++) { if (error->ringbuffer[i]) { struct drm_i915_error_object *obj = error->ringbuffer[i]; seq_printf(m, "%s --- ringbuffer = 0x%08x\n", dev_priv->ring[i].name, obj->gtt_offset); offset = 0; for (page = 0; page < obj->page_count; page++) { for (elt = 0; elt < PAGE_SIZE/4; elt++) { seq_printf(m, "%08x : %08x\n", offset, obj->pages[page][elt]); seq_printf(m, "%08x : %08x\n", offset, obj->pages[page][elt]); offset += 4; } } } } if (error->overlay) intel_overlay_print_error_state(m, error->overlay); Loading
drivers/gpu/drm/i915/i915_drv.h +1 −1 Original line number Diff line number Diff line Loading @@ -174,7 +174,7 @@ struct drm_i915_error_state { int page_count; u32 gtt_offset; u32 *pages[0]; } *ringbuffer, *batchbuffer[I915_NUM_RINGS]; } *ringbuffer[I915_NUM_RINGS], *batchbuffer[I915_NUM_RINGS]; struct drm_i915_error_buffer { u32 size; u32 name; Loading
drivers/gpu/drm/i915/i915_irq.c +14 −8 Original line number Diff line number Diff line Loading @@ -648,9 +648,14 @@ static void i915_error_state_free(struct drm_device *dev, struct drm_i915_error_state *error) { i915_error_object_free(error->batchbuffer[0]); i915_error_object_free(error->batchbuffer[1]); i915_error_object_free(error->ringbuffer); int i; for (i = 0; i < ARRAY_SIZE(error->batchbuffer); i++) i915_error_object_free(error->batchbuffer[i]); for (i = 0; i < ARRAY_SIZE(error->ringbuffer); i++) i915_error_object_free(error->ringbuffer[i]); kfree(error->active_bo); kfree(error->overlay); kfree(error); Loading Loading @@ -824,15 +829,16 @@ static void i915_capture_error_state(struct drm_device *dev) } i915_gem_record_fences(dev, error); /* Record the active batchbuffers */ for (i = 0; i < I915_NUM_RINGS; i++) /* Record the active batch and ring buffers */ for (i = 0; i < I915_NUM_RINGS; i++) { error->batchbuffer[i] = i915_error_first_batchbuffer(dev_priv, &dev_priv->ring[i]); /* Record the ringbuffer */ error->ringbuffer = i915_error_object_create(dev_priv, dev_priv->ring[RCS].obj); error->ringbuffer[i] = i915_error_object_create(dev_priv, dev_priv->ring[i].obj); } /* Record buffers on the active and pinned lists. */ error->active_bo = NULL; Loading