Skip to content

Commit

Permalink
drm/i915: Move reset forcewake processing to gen6_do_reset
Browse files Browse the repository at this point in the history
No reason to have half of the reset split from the other half.

Signed-off-by: Keith Packard <[email protected]>
Reviewed-by: Daniel Vetter <[email protected]>
  • Loading branch information
keith-packard committed Jan 19, 2012
1 parent 9f1f46a commit b6e45f8
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions drivers/gpu/drm/i915/i915_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -600,9 +600,17 @@ static int ironlake_do_reset(struct drm_device *dev, u8 flags)
static int gen6_do_reset(struct drm_device *dev, u8 flags)
{
struct drm_i915_private *dev_priv = dev->dev_private;
int ret;
unsigned long irqflags;

I915_WRITE(GEN6_GDRST, GEN6_GRDOM_FULL);
return wait_for((I915_READ(GEN6_GDRST) & GEN6_GRDOM_FULL) == 0, 500);
ret = wait_for((I915_READ(GEN6_GDRST) & GEN6_GRDOM_FULL) == 0, 500);
/* If reset with a user forcewake, try to restore */
spin_lock_irqsave(&dev_priv->gt_lock, irqflags);
if (dev_priv->forcewake_count)
dev_priv->display.force_wake_get(dev_priv);
spin_unlock_irqrestore(&dev_priv->gt_lock, irqflags);
return ret;
}

/**
Expand All @@ -629,7 +637,6 @@ int i915_reset(struct drm_device *dev, u8 flags)
* need to
*/
bool need_display = true;
unsigned long irqflags;
int ret;

if (!i915_try_reset)
Expand All @@ -647,11 +654,6 @@ int i915_reset(struct drm_device *dev, u8 flags)
case 7:
case 6:
ret = gen6_do_reset(dev, flags);
/* If reset with a user forcewake, try to restore */
spin_lock_irqsave(&dev_priv->gt_lock, irqflags);
if (dev_priv->forcewake_count)
dev_priv->display.force_wake_get(dev_priv);
spin_unlock_irqrestore(&dev_priv->gt_lock, irqflags);
break;
case 5:
ret = ironlake_do_reset(dev, flags);
Expand Down

0 comments on commit b6e45f8

Please sign in to comment.