Re: S4 resume breakage with i915 driver

Takashi Iwai
2016-08-26T09:18:02Z

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.

Thanks!

Takashi