diff options
author | Ben Gamari <bgamari.foss@gmail.com> | 2009-09-14 17:48:45 -0400 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-09-17 17:36:22 -0400 |
commit | 11ed50ec2a316928c2bacc1149bded86c6a96068 (patch) | |
tree | b363e00c943a34a04c1d48ec747d0a41f920e567 /drivers/gpu/drm/i915/i915_irq.c | |
parent | f65d94211e2bcba17faf05a6a3809af0e4217767 (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.c | 8 |
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 77e42e719d7d..2a042bc173fe 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 | ||