alistair23-linux/drivers/gpu/drm/i915
Chris Wilson 36d527dead drm/i915: Restore missing command flush before interrupt on BLT ring
We always skipped flushing the BLT ring if the request flush did not
include the RENDER domain. However, this neglects that we try to flush
the COMMAND domain after every batch and before the breadcrumb interrupt
(to make sure the batch is indeed completed prior to the interrupt
firing and so insuring CPU coherency). As a result of the missing flush,
incoherency did indeed creep in, most notable when using lots of command
buffers and so potentially rewritting an active command buffer (i.e.
the GPU was still executing from it even though the following interrupt
had already fired and the request/buffer retired).

As all ring->flush routines now have the same preconditions, de-duplicate
and move those checks up into i915_gem_flush_ring().

Fixes gem_linear_blit.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=35284
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Tested-by: mengmeng.meng@intel.com
2011-03-23 09:17:01 +00:00
..
dvo.h
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_sil164.c
dvo_tfp410.c
i915_debugfs.c drm/i915: report correct render clock frequencies on SNB 2011-03-23 09:17:00 +00:00
i915_dma.c drm/i915: don't store the reg value for HWS_PGA 2011-03-02 09:40:14 +00:00
i915_drv.c Merge remote branch 'intel/drm-intel-next' of ../drm-next into drm-core-next 2011-03-14 14:15:13 +10:00
i915_drv.h Merge remote branch 'intel/drm-intel-next' of ../drm-next into drm-core-next 2011-03-14 14:15:13 +10:00
i915_gem.c drm/i915: Restore missing command flush before interrupt on BLT ring 2011-03-23 09:17:01 +00:00
i915_gem_debug.c drm/i915: Refine tracepoints 2011-02-07 14:59:18 +00:00
i915_gem_evict.c drm/i915: Refine tracepoints 2011-02-07 14:59:18 +00:00
i915_gem_execbuffer.c drm/i915: Disable pagefaults along execbuffer relocation fast path 2011-03-23 09:17:01 +00:00
i915_gem_gtt.c drm/i915,agp/intel: Do not clear stolen entries 2011-01-24 18:26:25 +00:00
i915_gem_tiling.c Merge branch 'drm-intel-fixes' into drm-intel-next 2011-03-07 12:35:15 +00:00
i915_ioc32.c
i915_irq.c drm/i915: Replace vblank PM QoS with "Interrupt-Based AGPBUSY#" 2011-03-01 17:33:38 +00:00
i915_mem.c
i915_reg.h Merge commit '5359533801e3dd3abca5b7d3d985b0b33fd9fe8b' into drm-core-next 2011-03-16 11:34:41 +10:00
i915_suspend.c drm/i915: Don't save/restore hardware status page address register 2011-03-02 11:26:13 +00:00
i915_trace.h drm/i915: Refine tracepoints 2011-02-07 14:59:18 +00:00
i915_trace_points.c
intel_acpi.c
intel_bios.c Revert "drm/i915: Disable SSC for outputs other than LVDS or DP" 2011-02-22 15:55:28 +00:00
intel_bios.h Revert "drm/i915: Disable SSC for outputs other than LVDS or DP" 2011-02-22 15:55:28 +00:00
intel_crt.c drm/i915: cleanup per-pipe reg usage 2011-02-07 21:17:15 +00:00
intel_display.c drm/i915: report correct render clock frequencies on SNB 2011-03-23 09:17:00 +00:00
intel_dp.c drm/i915/dp: Correct the order of deletion for ghost eDP devices 2011-03-23 09:16:59 +00:00
intel_drv.h drm/i915: Add support for limited color range of broadcast outputs 2011-02-22 15:56:56 +00:00
intel_dvo.c drm/i915: cleanup per-pipe reg usage 2011-02-07 21:17:15 +00:00
intel_fb.c Revert "drm: Update fbdev fb_fix_screeninfo" 2011-01-14 16:10:28 -08:00
intel_hdmi.c drm/i915: Add support for limited color range of broadcast outputs 2011-02-22 15:56:56 +00:00
intel_i2c.c drm/i915: Enable GMBUS for post-gen2 chipsets 2011-02-01 09:01:13 +00:00
intel_lvds.c Merge branch 'drm-intel-fixes' into drm-intel-next 2011-02-16 09:44:30 +00:00
intel_modes.c drm/i915: Add support for limited color range of broadcast outputs 2011-02-22 15:56:56 +00:00
intel_opregion.c drm/i915: Use a symbolic constant for OpRegion lid state 2011-02-24 18:13:42 +00:00
intel_overlay.c drm/i915: Use a device flag for non-interruptible phases 2011-02-22 15:56:25 +00:00
intel_panel.c Merge commit '5359533801e3dd3abca5b7d3d985b0b33fd9fe8b' into drm-core-next 2011-03-16 11:34:41 +10:00
intel_ringbuffer.c drm/i915: Restore missing command flush before interrupt on BLT ring 2011-03-23 09:17:01 +00:00
intel_ringbuffer.h Merge branch 'drm-intel-fixes' into drm-intel-next 2011-03-07 12:35:15 +00:00
intel_sdvo.c Merge remote branch 'intel/drm-intel-next' of ../drm-next into drm-core-next 2011-03-14 14:15:13 +10:00
intel_sdvo_regs.h
intel_tv.c Merge branch 'drm-intel-fixes' into drm-intel-next 2011-02-16 09:44:30 +00:00
Makefile