Re: S4 resume breakage with i915 driver

Takashi Iwai
2016-08-26T10:25:04Z

On Fri, 26 Aug 2016 11:18:00 +0200,
Takashi Iwai wrote:
>
> On Thu, 25 Aug 2016 18:15:37 +0200,
> Takashi Iwai wrote:
> >
> > On Thu, 25 Aug 2016 18:12:19 +0200,
> > Chris Wilson wrote:
> > >
> > > > Maybe But it's hard to tell exactly whether this is
> > > > the 100% culprit. As said, there have been multiple S4 bugs, so far.
> > > > IVY worked without this patch (after x86 fixes), but obviously this
> > > > had no negative effect, either.
> > >
> > > Try
> > >
> > > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> > > index 95ddd56b89f0..913ccf14c5a9 100644
> > > --- a/drivers/gpu/drm/i915/i915_drv.c
> > > +++ b/drivers/gpu/drm/i915/i915_drv.c
> > > @@ -1946,6 +1946,7 @@ static int i915_pm_thaw(struct device *dev)
> > > /* restore: called after loading the hibernation image. */
> > > static int i915_pm_restore_early(struct device *dev)
> > > {
> > > + intel_gpu_reset(dev_to_i915(dev), ALL_ENGINES);
> > > return i915_pm_resume_early(dev);
> > > }
> > >
> > > as a shot in the dark.
> >
> > OK, I'll check it. Maybe the result will be on tomorrow as I'll need
> > to leave soon from my office.
>
> I had to modify the intel_gpu_reset() call because the test was done
> on the older kernel, so it's like:
>
> + intel_gpu_reset(dev_to_i915(dev)->dev);
>
> And, it seems working on HSW! \o/
>
> A simple trick, better than the magical register write revert.
> I'll check other machines, too, to see whether it has any negative
> impact.

The test results look good on all machines.

Takashi