aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2008-06-13 09:53:36 -0700
committerEric Anholt <eric@anholt.net>2008-06-13 09:54:14 -0700
commit0558d99c01c38e24e97b57ef55f66bb94a92e157 (patch)
treec4529948d4f082a62242e7519791d461c8e712b6
parentc892e26bdfcacfe7213085a08dd82e2cb7faa003 (diff)
[gem] Remove the interrupt handler for retiring requests.
This was insufficient once we started masking interrupts to only when someone was waiting for them (and would thus retire requests themselves). It was replaced by the retire_timer.
-rw-r--r--shared-core/i915_dma.c2
-rw-r--r--shared-core/i915_drv.h3
-rw-r--r--shared-core/i915_irq.c23
3 files changed, 0 insertions, 28 deletions
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
}