aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_irq.c
diff options
context:
space:
mode:
authorBen Gamari <bgamari.foss@gmail.com>2009-09-14 17:48:45 -0400
committerJesse Barnes <jbarnes@virtuousgeek.org>2009-09-17 17:36:22 -0400
commit11ed50ec2a316928c2bacc1149bded86c6a96068 (patch)
treeb363e00c943a34a04c1d48ec747d0a41f920e567 /drivers/gpu/drm/i915/i915_irq.c
parentf65d94211e2bcba17faf05a6a3809af0e4217767 (diff)
drm/i915: Implement GPU reset on i965
This patch puts in place the machinery to attempt to reset the GPU. This will be used when attempting to recover from a GPU hang. Signed-off-by: Owain G. Ainsworth <oga@openbsd.org> Signed-off-by: Ben Gamari <bgamari.foss@gmail.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_irq.c')
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 77e42e719d7..2a042bc173f 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -482,6 +482,14 @@ static void i915_handle_error(struct drm_device *dev)
482 I915_WRITE(IIR, I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT); 482 I915_WRITE(IIR, I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT);
483 } 483 }
484 484
485 if (dev_priv->mm.wedged) {
486 /*
487 * Wakeup waiting processes so they don't hang
488 */
489 printk("i915: Waking up sleeping processes\n");
490 DRM_WAKEUP(&dev_priv->irq_queue);
491 }
492
485 queue_work(dev_priv->wq, &dev_priv->error_work); 493 queue_work(dev_priv->wq, &dev_priv->error_work);
486} 494}
487 495