aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915
diff options
context:
space:
mode:
authorNaresh Kumar Kachhi <naresh.kumar.kachhi@intel.com>2014-03-12 07:09:42 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-03-12 11:10:55 -0400
commit02f6a1e750df8201561171c47472435557a65864 (patch)
tree7d76559fb9af4438a553fc8a6f0fe0be7ec1ed6b /drivers/gpu/drm/i915
parente9fea5747d2b3dbff47a8790c1cc4d7af80051d6 (diff)
drm/i915: warn if ring is active before sync flush
Based on Bspec the command parser must be stopped prior to issuing sync flush. This should be done by the caller of intel_ring_setup_status_page. Patch adds a warning if it is not done. v2: rebased based on new patch (wait for ring to become idle) Signed-off-by: Naresh Kumar Kachhi <naresh.kumar.kachhi@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 617634b6a6c2..c50388a86bca 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -984,6 +984,10 @@ void intel_ring_setup_status_page(struct intel_ring_buffer *ring)
984 /* Flush the TLB for this page */ 984 /* Flush the TLB for this page */
985 if (INTEL_INFO(dev)->gen >= 6) { 985 if (INTEL_INFO(dev)->gen >= 6) {
986 u32 reg = RING_INSTPM(ring->mmio_base); 986 u32 reg = RING_INSTPM(ring->mmio_base);
987
988 /* ring should be idle before issuing a sync flush*/
989 WARN_ON((I915_READ_MODE(ring) & MODE_IDLE) == 0);
990
987 I915_WRITE(reg, 991 I915_WRITE(reg,
988 _MASKED_BIT_ENABLE(INSTPM_TLB_INVALIDATE | 992 _MASKED_BIT_ENABLE(INSTPM_TLB_INVALIDATE |
989 INSTPM_SYNC_FLUSH)); 993 INSTPM_SYNC_FLUSH));