[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.
main
Eric Anholt 2008-06-13 09:53:36 -07:00
parent c892e26bdf
commit 0558d99c01
3 changed files with 0 additions and 28 deletions

View File

@ -1077,8 +1077,6 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
init_timer_deferrable (&dev_priv->mm.retire_timer); init_timer_deferrable (&dev_priv->mm.retire_timer);
INIT_WORK(&dev_priv->mm.retire_task, INIT_WORK(&dev_priv->mm.retire_task,
i915_gem_retire_handler); i915_gem_retire_handler);
INIT_WORK(&dev_priv->user_interrupt_task,
i915_user_interrupt_handler);
dev_priv->mm.next_gem_seqno = 1; dev_priv->mm.next_gem_seqno = 1;
#ifdef __linux__ #ifdef __linux__

View File

@ -300,8 +300,6 @@ typedef struct drm_i915_private {
*/ */
int suspended; int suspended;
} mm; } mm;
struct work_struct user_interrupt_task;
} drm_i915_private_t; } drm_i915_private_t;
enum intel_chip_family { enum intel_chip_family {
@ -421,7 +419,6 @@ extern int i915_vblank_swap(struct drm_device *dev, void *data,
struct drm_file *file_priv); struct drm_file *file_priv);
extern void i915_user_irq_on(drm_i915_private_t *dev_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_irq_off(drm_i915_private_t *dev_priv);
extern void i915_user_interrupt_handler(struct work_struct *work);
/* i915_mem.c */ /* i915_mem.c */
extern int i915_mem_alloc(struct drm_device *dev, void *data, extern int i915_mem_alloc(struct drm_device *dev, void *data,

View File

@ -435,28 +435,6 @@ u32 i915_get_vblank_counter(struct drm_device *dev, int plane)
return count; 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) irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)
{ {
struct drm_device *dev = (struct drm_device *) arg; 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); DRM_WAKEUP(&dev_priv->irq_queue);
#ifdef I915_HAVE_FENCE #ifdef I915_HAVE_FENCE
i915_fence_handler(dev); i915_fence_handler(dev);
schedule_work(&dev_priv->user_interrupt_task);
#endif #endif
} }