move i915 to new drm_wait_on function

main
Dave Airlie 2007-04-28 15:07:22 +10:00
parent 6e860d08d0
commit feb6803778
1 changed files with 9 additions and 2 deletions

View File

@ -381,6 +381,13 @@ void i915_user_irq_off(drm_i915_private_t *dev_priv)
spin_unlock(&dev_priv->user_irq_lock);
}
static int wait_compare(struct drm_device *dev, void *priv)
{
drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
int irq_nr = (u64)priv;
return (READ_BREADCRUMB(dev_priv) >= irq_nr);
}
static int i915_wait_irq(drm_device_t * dev, int irq_nr)
{
@ -396,8 +403,8 @@ static int i915_wait_irq(drm_device_t * dev, int irq_nr)
dev_priv->sarea_priv->perf_boxes |= I915_BOX_WAIT;
i915_user_irq_on(dev_priv);
DRM_WAIT_ON(ret, dev_priv->irq_queue, 3 * DRM_HZ,
READ_BREADCRUMB(dev_priv) >= irq_nr);
ret = drm_wait_on(dev, &dev_priv->irq_queue, 3 * DRM_HZ, wait_compare,
(void *)(u64)irq_nr);
i915_user_irq_off(dev_priv);
if (ret == DRM_ERR(EBUSY)) {