On Mon, Feb 24, 2014 at 05:02:08PM +0200, ville.syrj...@linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrj...@linux.intel.com>
> 
> Use the render/media specific forcewake counts to properly restore the
> forcewake status after a GPU reset on VLV.
> 
> Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_uncore.c | 20 ++++++++++++++++----
>  1 file changed, 16 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_uncore.c 
> b/drivers/gpu/drm/i915/intel_uncore.c
> index c628414..09fa555 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.c
> +++ b/drivers/gpu/drm/i915/intel_uncore.c
> @@ -967,10 +967,22 @@ static int gen6_do_reset(struct drm_device *dev)
>       intel_uncore_forcewake_reset(dev);
>  
>       /* If reset with a user forcewake, try to restore, otherwise turn it 
> off */
> -     if (dev_priv->uncore.forcewake_count)
> -             dev_priv->uncore.funcs.force_wake_get(dev_priv, FORCEWAKE_ALL);
> -     else
> -             dev_priv->uncore.funcs.force_wake_put(dev_priv, FORCEWAKE_ALL);
> +     if (IS_VALLEYVIEW(dev)) {
> +             if (dev_priv->uncore.fw_rendercount)
> +                     dev_priv->uncore.funcs.force_wake_get(dev_priv, 
> FORCEWAKE_RENDER);
> +             else
> +                     dev_priv->uncore.funcs.force_wake_put(dev_priv, 
> FORCEWAKE_RENDER);
> +
> +             if (dev_priv->uncore.fw_mediacount)
> +                     dev_priv->uncore.funcs.force_wake_get(dev_priv, 
> FORCEWAKE_MEDIA);
> +             else
> +                     dev_priv->uncore.funcs.force_wake_put(dev_priv, 
> FORCEWAKE_MEDIA);
> +     } else {
> +             if (dev_priv->uncore.forcewake_count)
> +                     dev_priv->uncore.funcs.force_wake_get(dev_priv, 
> FORCEWAKE_ALL);
> +             else
> +                     dev_priv->uncore.funcs.force_wake_put(dev_priv, 
> FORCEWAKE_ALL);
> +     }

It starts to feel like we should subsume the forcewake stuff into our
power domain handling, and create a bunch of domains for this ...

But that's lots of work since we need to switch to a more explicit
forcewake power domain handling then I guess. Not sure whether that's
worth it.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to