Hi all, This patch series is inspired by Ben's ring->get|put_irq cleanup for gen6+ and my perpetual hatred for intel_ringbuffer.c. It's a lot of churn, but the end result is imho worth it - I almost started to like what the ringbuffer abstraction looks like now. There are some follow-up cleanups possible, but I think that can wait until we've cleanup up our domain tracking and ripped out the flushing_list (if that ever happens). Commments, flames and review highly welcome. Yours, Daniel Daniel Vetter (14): drm/i915: rip out ring->irq_mask drm/i915: set ring->size in common ring setup code drm/i915: dynamically set up the render ring functions and params drm/i915: dynamically set up bsd ring functions and params drm/i915: dynamically set up blt ring functions and parameters drm/i915: don't set up rings on gen6+ for non-kms drm/i915: consolidate ring->sync-to functions drm/i915: abstract away ring-specific irq_get/put drm/i915: split out the gen5 ring irq get/put functions drm/i915: don't enable the gen6 bsd ring tail write enable on gen7 drm/i915: split up ring->dispatch_execbuffer functions drm/i915: consolidate ring->flush a bit drm/i915: don't set up gem ring functions on gen5 for !kms drm/i915: inline enable/disable_irq into ring->get/put_irq drivers/gpu/drm/i915/intel_ringbuffer.c | 466 +++++++++++++------------------ drivers/gpu/drm/i915/intel_ringbuffer.h | 3 +- 2 files changed, 196 insertions(+), 273 deletions(-) -- 1.7.7.5