summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hellstrom <thomas@tungstengraphics.com>2006-02-27 16:30:15 +0000
committerThomas Hellstrom <thomas@tungstengraphics.com>2006-02-27 16:30:15 +0000
commit8dae5b408434eb145866625e554a92f9737354e7 (patch)
treeae846fb78f15e2892c0646baa09ba67cb3614bc7
parentc14a5a4aca1fb82a4e385560708d4934112cbb8c (diff)
intel: Make sure to update the sarea breadcrumb as often as possible.
-rw-r--r--shared-core/i915_dma.c1
-rw-r--r--shared-core/i915_irq.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/shared-core/i915_dma.c b/shared-core/i915_dma.c
index 82f29093c..e3f634f30 100644
--- a/shared-core/i915_dma.c
+++ b/shared-core/i915_dma.c
@@ -430,6 +430,7 @@ static void i915_emit_breadcrumb(drm_device_t *dev)
OUT_RING(dev_priv->counter);
OUT_RING(0);
ADVANCE_LP_RING();
+ dev_priv->sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv);
}
diff --git a/shared-core/i915_irq.c b/shared-core/i915_irq.c
index c1a29e1ef..b273c041d 100644
--- a/shared-core/i915_irq.c
+++ b/shared-core/i915_irq.c
@@ -94,6 +94,7 @@ static int i915_wait_irq(drm_device_t * dev, int irq_nr)
DRM_DEBUG("%s irq_nr=%d breadcrumb=%d\n", __FUNCTION__, irq_nr,
READ_BREADCRUMB(dev_priv));
+ dev_priv->sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv);
if (((uint32_t)(READ_BREADCRUMB(dev_priv) - irq_nr)) <= (1 << 23))
return 0;
@@ -108,7 +109,6 @@ static int i915_wait_irq(drm_device_t * dev, int irq_nr)
READ_BREADCRUMB(dev_priv), (int)dev_priv->counter);
}
- dev_priv->sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv);
return ret;
}