summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_ringbuffer.c
diff options
context:
space:
mode:
authorNaresh Kumar Kachhi <naresh.kumar.kachhi@intel.com>2014-03-12 16:39:42 +0530
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-03-12 16:10:55 +0100
commit02f6a1e750df8201561171c47472435557a65864 (patch)
tree7d76559fb9af4438a553fc8a6f0fe0be7ec1ed6b /drivers/gpu/drm/i915/intel_ringbuffer.c
parente9fea5747d2b3dbff47a8790c1cc4d7af80051d6 (diff)
downloadop-kernel-dev-02f6a1e750df8201561171c47472435557a65864.zip
op-kernel-dev-02f6a1e750df8201561171c47472435557a65864.tar.gz
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/intel_ringbuffer.c')
-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 617634b..c50388a 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)
/* Flush the TLB for this page */
if (INTEL_INFO(dev)->gen >= 6) {
u32 reg = RING_INSTPM(ring->mmio_base);
+
+ /* ring should be idle before issuing a sync flush*/
+ WARN_ON((I915_READ_MODE(ring) & MODE_IDLE) == 0);
+
I915_WRITE(reg,
_MASKED_BIT_ENABLE(INSTPM_TLB_INVALIDATE |
INSTPM_SYNC_FLUSH));
OpenPOWER on IntegriCloud