On Mon, Jan 27, 2014 at 11:07:04PM -0800, Ben Widawsky wrote: > Signed-off-by: Ben Widawsky <ben@xxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_drv.h | 62 +++++++-------- > drivers/gpu/drm/i915/i915_gpu_error.c | 137 +++++++++++++++++----------------- > 2 files changed, 99 insertions(+), 100 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index bb53de5..defdb00 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -313,49 +313,49 @@ struct drm_i915_error_state { > struct intel_overlay_error_state *overlay; > struct intel_display_error_state *display; > > - /* Per ring register state > - * TODO: Move these to per ring */ > - u32 tail[I915_NUM_RINGS]; > - u32 head[I915_NUM_RINGS]; > - u32 ctl[I915_NUM_RINGS]; > - u32 hws[I915_NUM_RINGS]; > - u32 ipeir[I915_NUM_RINGS]; > - u32 ipehr[I915_NUM_RINGS]; > - u32 instdone[I915_NUM_RINGS]; > - u32 acthd[I915_NUM_RINGS]; > - u32 bbstate[I915_NUM_RINGS]; > - u32 instpm[I915_NUM_RINGS]; > - u32 instps[I915_NUM_RINGS]; > - u32 seqno[I915_NUM_RINGS]; > - u64 bbaddr[I915_NUM_RINGS]; > - u32 fault_reg[I915_NUM_RINGS]; > - u32 faddr[I915_NUM_RINGS]; > - u32 rc_psmi[I915_NUM_RINGS]; /* sleep state */ > - u32 semaphore_mboxes[I915_NUM_RINGS][I915_NUM_RINGS - 1]; > - > - /* Software tracked state */ > - bool waiting[I915_NUM_RINGS]; > - int hangcheck_score[I915_NUM_RINGS]; > - enum intel_ring_hangcheck_action hangcheck_action[I915_NUM_RINGS]; > - > - /* our own tracking of ring head and tail */ > - u32 cpu_ring_head[I915_NUM_RINGS]; > - u32 cpu_ring_tail[I915_NUM_RINGS]; > - u32 semaphore_seqno[I915_NUM_RINGS][I915_NUM_RINGS - 1]; > - > struct drm_i915_error_ring { > bool valid; > + /* Software tracked state */ > + bool waiting; Looks like we have some bools to coallesce! :) > + int hangcheck_score; > + enum intel_ring_hangcheck_action hangcheck_action; > + > + /* Register state */ > + u32 tail; > + u32 head; > + u32 ctl; > + u32 ipeir; > + u32 ipehr; > + u32 instdone; > + u32 acthd; > + u32 bbstate; > + u32 instpm; > + u32 instps; > + u32 seqno; > + u64 bbaddr; > + u32 fault_reg; > + u32 faddr; > + u32 rc_psmi; /* sleep state */ > + u32 semaphore_mboxes[I915_NUM_RINGS - 1]; > + > + /* our own tracking of ring head and tail */ > + u32 cpu_ring_head; > + u32 cpu_ring_tail; > + > + u32 semaphore_seqno[I915_NUM_RINGS - 1]; > + > struct drm_i915_error_object { > int page_count; > u32 gtt_offset; > u32 *pages[0]; > } *ringbuffer, *batchbuffer, *ctx, *hws; > + > + int num_requests; This feels a little odd - we split up a set of pointers with a int+hole. > struct drm_i915_error_request { > long jiffies; > u32 seqno; > u32 tail; > } *requests; > - int num_requests; > } ring[I915_NUM_RINGS]; > > struct drm_i915_error_buffer { The code cleanup is well worth it, Reviewed-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx