On Mon, 19 May 2014 19:23:23 +0300
ville.syrj...@linux.intel.com wrote:

> From: Ville Syrjälä <ville.syrj...@linux.intel.com>
> 
> We should be waiting for the reset bit to clear, not remain set.
> 
> Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_uncore.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_uncore.c 
> b/drivers/gpu/drm/i915/intel_uncore.c
> index 0e333f2..d79db88 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.c
> +++ b/drivers/gpu/drm/i915/intel_uncore.c
> @@ -1000,7 +1000,8 @@ static int ironlake_do_reset(struct drm_device *dev)
>       gdrst &= ~GRDOM_MASK;
>       I915_WRITE(MCHBAR_MIRROR_BASE + ILK_GDSR,
>                  gdrst | GRDOM_RENDER | GRDOM_RESET_ENABLE);
> -     ret = wait_for(I915_READ(MCHBAR_MIRROR_BASE + ILK_GDSR) & 0x1, 500);
> +     ret = wait_for((I915_READ(MCHBAR_MIRROR_BASE + ILK_GDSR) &
> +                     GRDOM_RESET_ENABLE) == 0, 500);
>       if (ret)
>               return ret;
>  
> @@ -1008,7 +1009,8 @@ static int ironlake_do_reset(struct drm_device *dev)
>       gdrst &= ~GRDOM_MASK;
>       I915_WRITE(MCHBAR_MIRROR_BASE + ILK_GDSR,
>                  gdrst | GRDOM_MEDIA | GRDOM_RESET_ENABLE);
> -     return wait_for(I915_READ(MCHBAR_MIRROR_BASE + ILK_GDSR) & 0x1, 500);
> +     return wait_for((I915_READ(MCHBAR_MIRROR_BASE + ILK_GDSR) &
> +                      GRDOM_RESET_ENABLE) == 0, 500);
>  }
>  
>  static int gen6_do_reset(struct drm_device *dev)

Arg, I lost the docs on this, but it matches what I remember.

Reviewed-by: Jesse Barnes <jbar...@virtuousgeek.org>

-- 
Jesse Barnes, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to