move i915 to new drm_wait_on function
parent
6e860d08d0
commit
feb6803778
|
@ -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)) {
|
||||
|
|
Loading…
Reference in New Issue