aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_drv.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.c')
-rw-r--r--drivers/gpu/drm/i915/i915_drv.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 38e889bfd99..2ddac06d596 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -368,7 +368,7 @@ static int ironlake_do_reset(struct drm_device *dev, u8 flags)
368 * - re-init interrupt state 368 * - re-init interrupt state
369 * - re-init display 369 * - re-init display
370 */ 370 */
371int i965_reset(struct drm_device *dev, u8 flags) 371int i915_reset(struct drm_device *dev, u8 flags)
372{ 372{
373 drm_i915_private_t *dev_priv = dev->dev_private; 373 drm_i915_private_t *dev_priv = dev->dev_private;
374 /* 374 /*
@@ -401,14 +401,19 @@ int i965_reset(struct drm_device *dev, u8 flags)
401 * well as the reset bit (GR/bit 0). Setting the GR bit 401 * well as the reset bit (GR/bit 0). Setting the GR bit
402 * triggers the reset; when done, the hardware will clear it. 402 * triggers the reset; when done, the hardware will clear it.
403 */ 403 */
404 if (IS_IRONLAKE(dev)) 404 ret = -ENODEV;
405 switch (INTEL_INFO(dev)->gen) {
406 case 5:
405 ret = ironlake_do_reset(dev, flags); 407 ret = ironlake_do_reset(dev, flags);
406 else 408 break;
409 case 4:
407 ret = i965_do_reset(dev, flags); 410 ret = i965_do_reset(dev, flags);
411 break;
412 }
408 if (ret) { 413 if (ret) {
409 WARN(true, "i915: Failed to reset chip\n"); 414 DRM_ERROR("Failed to reset chip.\n");
410 mutex_unlock(&dev->struct_mutex); 415 mutex_unlock(&dev->struct_mutex);
411 return -EIO; 416 return ret;
412 } 417 }
413 418
414 /* Ok, now get things going again... */ 419 /* Ok, now get things going again... */