diff --git a/shared-core/i915_dma.c b/shared-core/i915_dma.c index 7e4de18b..667a6ac0 100644 --- a/shared-core/i915_dma.c +++ b/shared-core/i915_dma.c @@ -1077,8 +1077,6 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) init_timer_deferrable (&dev_priv->mm.retire_timer); INIT_WORK(&dev_priv->mm.retire_task, i915_gem_retire_handler); - INIT_WORK(&dev_priv->user_interrupt_task, - i915_user_interrupt_handler); dev_priv->mm.next_gem_seqno = 1; #ifdef __linux__ diff --git a/shared-core/i915_drv.h b/shared-core/i915_drv.h index 9c9925b5..5af9a964 100644 --- a/shared-core/i915_drv.h +++ b/shared-core/i915_drv.h @@ -300,8 +300,6 @@ typedef struct drm_i915_private { */ int suspended; } mm; - - struct work_struct user_interrupt_task; } drm_i915_private_t; enum intel_chip_family { @@ -421,7 +419,6 @@ extern int i915_vblank_swap(struct drm_device *dev, void *data, struct drm_file *file_priv); extern void i915_user_irq_on(drm_i915_private_t *dev_priv); extern void i915_user_irq_off(drm_i915_private_t *dev_priv); -extern void i915_user_interrupt_handler(struct work_struct *work); /* i915_mem.c */ extern int i915_mem_alloc(struct drm_device *dev, void *data, diff --git a/shared-core/i915_irq.c b/shared-core/i915_irq.c index 39da8143..6daf2918 100644 --- a/shared-core/i915_irq.c +++ b/shared-core/i915_irq.c @@ -435,28 +435,6 @@ u32 i915_get_vblank_counter(struct drm_device *dev, int plane) return count; } -/** - * Handler for user interrupts in process context (able to sleep, do VFS - * operations, etc. - * - * If another IRQ comes in while we're in this handler, it will still get put - * on the queue again to be rerun when we finish. - */ -void -i915_user_interrupt_handler(struct work_struct *work) -{ - drm_i915_private_t *dev_priv; - struct drm_device *dev; - - dev_priv = container_of(work, drm_i915_private_t, - user_interrupt_task); - dev = dev_priv->dev; - - mutex_lock(&dev->struct_mutex); - i915_gem_retire_requests(dev); - mutex_unlock(&dev->struct_mutex); -} - irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) { struct drm_device *dev = (struct drm_device *) arg; @@ -514,7 +492,6 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) DRM_WAKEUP(&dev_priv->irq_queue); #ifdef I915_HAVE_FENCE i915_fence_handler(dev); - schedule_work(&dev_priv->user_interrupt_task); #endif }