On Mon, May 19, 2014 at 09:30:25AM -0700, Jesse Barnes wrote: > On Mon, 19 May 2014 19:23:23 +0300 > ville.syrjala@xxxxxxxxxxxxxxx wrote: > > > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > > > We should be waiting for the reset bit to clear, not remain set. > > > > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > --- > > 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 <jbarnes@xxxxxxxxxxxxxxxx> Was this tested on an ilk? I remember writing a similar patch and I didn't apply it due to conflict with reality. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx