diff options
author | Eric Anholt <eric@anholt.net> | 2009-08-03 16:09:16 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2009-08-05 11:20:53 -0700 |
commit | 9c9fe1f841745184bbc5460c6f3909fded3b929b (patch) | |
tree | 7633580a02803cbe32e5ebda4a834f436ebba5c0 /drivers/gpu/drm/i915/i915_irq.c | |
parent | 0c2e39525b3b53a97a0202c5f35058147e53977e (diff) | |
download | lwn-9c9fe1f841745184bbc5460c6f3909fded3b929b.tar.gz lwn-9c9fe1f841745184bbc5460c6f3909fded3b929b.zip |
drm/i915: Use our own workqueue to avoid wedging the system along with the GPU.
Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_irq.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_irq.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index f340b3fd54e6..83aee80e77a6 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -482,7 +482,7 @@ static void i915_handle_error(struct drm_device *dev) I915_WRITE(IIR, I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT); } - schedule_work(&dev_priv->error_work); + queue_work(dev_priv->wq, &dev_priv->error_work); } irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) @@ -560,7 +560,8 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) DRM_DEBUG("hotplug event received, stat 0x%08x\n", hotplug_status); if (hotplug_status & dev_priv->hotplug_supported_mask) - schedule_work(&dev_priv->hotplug_work); + queue_work(dev_priv->wq, + &dev_priv->hotplug_work); I915_WRITE(PORT_HOTPLUG_STAT, hotplug_status); I915_READ(PORT_HOTPLUG_STAT); |