[Intel-gfx] [PATCH] drm/i915: fix gen4 gpu reset

Kenneth Graunke kenneth at whitecape.org
Wed May 2 21:54:46 CEST 2012


On 05/02/2012 12:33 PM, Daniel Vetter wrote:
> While trying to fix up gen4 gpu reset in
>
> commit f49f0586191fe16140410db0a46d43bdc690d6af
> Author: Kenneth Graunke<kenneth at whitecape.org>
> Date:   Sat Sep 11 01:19:14 2010 -0700
>
>      drm/i915: Actually set the reset bit in i965_reset
>
> a little confusion about when wait_for times out has been introduced -
> wait for loops _until_ the condition is true.
>
> This fixes gpu reset on my gm45, testing with my hangman code shows
> that it's now fairly reliable - it only died after well over 100 reset
> cycles.
>
> Cc: Kenneth Graunke<kenneth at whitecape.org>
> Cc: Eric Anholt<eric at anholt.net>
> Signed-Off-by: Daniel Vetter<daniel.vetter at ffwll.ch>
> ---
>   drivers/gpu/drm/i915/i915_drv.c |    2 +-
>   1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 133f101..77b7a50 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -707,7 +707,7 @@ static int i965_reset_complete(struct drm_device *dev)
>   {
>   	u8 gdrst;
>   	pci_read_config_byte(dev->pdev, I965_GDRST,&gdrst);
> -	return gdrst&  0x1;
> +	return (gdrst&  GRDOM_RESET_ENABLE) == 0;
>   }
>
>   static int i965_do_reset(struct drm_device *dev)

How embarassing :)  Ironlake also has the same bug and IIRC hasn't been 
resetting properly for me.  I can test that if you'd like.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

I might also Cc: stable at kernel.org an equivalent of this...but, up to you.



More information about the Intel-gfx mailing list