[Intel-gfx] Fwd: [PATCH 1/2] drm/i915: Fix VLV forcewake after reset

S, Deepak deepak.s at intel.com
Thu Feb 27 15:24:49 CET 2014


On Wed, Jan 29, 2014 at 9:55 AM, ville syrjala
>
>
> ---------- Forwarded message ----------
> From: ** <ville.syrjala at linux.intel.com
> <mailto:ville.syrjala at linux.intel.com>>
> Date: Mon, Feb 24, 2014 at 8:32 PM
> Subject: [Intel-gfx] [PATCH 1/2] drm/i915: Fix VLV forcewake after reset
> To: intel-gfx at lists.freedesktop.org <mailto:intel-gfx at lists.freedesktop.org>
>
>
> From: Ville Syrjälä <ville.syrjala at linux.intel.com
> <mailto:ville.syrjala at 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.syrjala at linux.intel.com
> <mailto:ville.syrjala at 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);
> +       }
>
>          /* Restore fifo count */
>          dev_priv->uncore.fifo_count = __raw_i915_read32(dev_priv,
> GTFIFOCTL) & GT_FIFO_FREE_ENTRIES_MASK;
> --
> 1.8.3.2
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org <mailto:Intel-gfx at lists.freedesktop.org>
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>

Reviewed-by: Deepak S <deepak.s at intel.com>



More information about the Intel-gfx mailing list