This patch doesn't apply to the .36 stable tree
If someone wants it applied there, please email the backport
to [email protected]

thanks,

greg k-h

> commit: 6fd0d56e3bc1abfb237b8824261b613e21e77bc8
> From: Chris Wilson <[email protected]>
> Date: Sun, 5 Dec 2010 20:42:33 +0000
> Subject: [PATCH] drm/i915/ringbuffer: Only print an error on the second 
> attempt to reset head
> 
> There's not much we can do here but hope for the best. However the first
> failure happens quite frequently and if often remedied by the second
> attempt to reset HEAD. So only print the error if that attempt also
> fails.
> 
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=19802
> Reported-by: Thomas Meyer <[email protected]>
> Signed-off-by: Chris Wilson <[email protected]>
> Cc: [email protected]
> ---
>  drivers/gpu/drm/i915/intel_ringbuffer.c |   30 ++++++++++++++++--------------
>  1 files changed, 16 insertions(+), 14 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c 
> b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index b83306f..89a65be 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -156,23 +156,25 @@ static int init_ring_common(struct drm_device *dev,
>  
>       /* G45 ring initialization fails to reset head to zero */
>       if (head != 0) {
> -             DRM_ERROR("%s head not reset to zero "
> -                             "ctl %08x head %08x tail %08x start %08x\n",
> -                             ring->name,
> -                             I915_READ_CTL(ring),
> -                             I915_READ_HEAD(ring),
> -                             I915_READ_TAIL(ring),
> -                             I915_READ_START(ring));
> +             DRM_DEBUG_KMS("%s head not reset to zero "
> +                           "ctl %08x head %08x tail %08x start %08x\n",
> +                           ring->name,
> +                           I915_READ_CTL(ring),
> +                           I915_READ_HEAD(ring),
> +                           I915_READ_TAIL(ring),
> +                           I915_READ_START(ring));
>  
>               I915_WRITE_HEAD(ring, 0);
>  
> -             DRM_ERROR("%s head forced to zero "
> -                             "ctl %08x head %08x tail %08x start %08x\n",
> -                             ring->name,
> -                             I915_READ_CTL(ring),
> -                             I915_READ_HEAD(ring),
> -                             I915_READ_TAIL(ring),
> -                             I915_READ_START(ring));
> +             if (I915_READ_HEAD(ring) & HEAD_ADDR) {
> +                     DRM_ERROR("failed to set %s head to zero "
> +                               "ctl %08x head %08x tail %08x start %08x\n",
> +                               ring->name,
> +                               I915_READ_CTL(ring),
> +                               I915_READ_HEAD(ring),
> +                               I915_READ_TAIL(ring),
> +                               I915_READ_START(ring));
> +             }
>       }
>  
>       I915_WRITE_CTL(ring,
> 
> _______________________________________________
> stable mailing list
> [email protected]
> http://linux.kernel.org/mailman/listinfo/stable

_______________________________________________
stable mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/stable

Reply via email to