[Intel-gfx] [PATCH] drm/i915: apply the PCI_D0/D3 hibernation workaround everywhere on pre GEN6

Ville Syrjälä ville.syrjala at linux.intel.com
Wed Jul 1 02:02:07 PDT 2015


On Tue, Jun 30, 2015 at 07:27:06PM +0200, Pavel Machek wrote:
> Hi!
> 
> > commit da2bc1b9db3351addd293e5b82757efe1f77ed1d
> > Author: Imre Deak <imre.deak at intel.com>
> > Date:   Thu Oct 23 19:23:26 2014 +0300
> > 
> >     drm/i915: add poweroff_late handler
> > 
> > introduced a regression on old platforms during hibernation. A workaround was
> > added in
> > 
> > commit ab3be73fa7b43f4c3648ce29b5fd649ea54d3adb
> > Author: Imre Deak <imre.deak at intel.com>
> > Date:   Mon Mar 2 13:04:41 2015 +0200
> > 
> >     drm/i915: gen4: work around hang during hibernation
> > 
> > using an explicit blacklist for the GENs/BIOS vendors where the issue was
> > reported. Later there we had reports of the same failure on platforms not on
> > this list.
> > 
> > To my best knowledge the correct thing to do is still to put the device to PCI
> > D3 state during hibernation, see [1] and [2] for the reasons. This
> > also aligns
> 
> Hmm, so the reasons according to you are:
> 
> > - ACPI mandates that the OSPM (the kernel in our case) puts all
> >   devices
> >   into D3 that are not wake-up sources (i915 is not) (Kudos to Ville
> >   for
> >   pointing this out)
> 
> Clearly, BIOS vendors did not read this, and pretty clearly Windows
> do not follow the specs, either. That means that it is bad idea for us
> to follow the specs, and trigger BIOS bugs. 

It's not clear at all. From what I managed to find on the Internets,
Windows (at least recent versions) should put devices into D3.

> 
> > - Embedded panels have a well defined shutdown sequence. We don't
> >   have
> >   any good reason to not follow this, in fact for some panels the
> >   subsequent reinitialization could be problematic in case of a hard
> >   power-off. (Thanks to Jani for this info)
> 
> Please cite concrete example. I have yet to see machine that would not
> power up on forced power down. In fact, I argue that such machine
> would be very broken, and that such machine does not exist. While we
> have these real machines broken:
> 
> > +	 * Lenovo Thinkpad X301, X61s, X60, T60, X41
> > +	 * Fujitsu FSC S7110
> > +	 * Acer Aspire 1830T
> 
> What makes you think that BIOS writers will do something different for
> Gen6+ hardware? X301 is not that old.

Thinkpad X1 Carbon (IVB) is perfectly happy with the D3, so clearly
something changed for Lenovo at least. And most machines (old and new)
have no problems whatsoever with the D3.

It might be interesting to see if hibernate even works in Windows
without some vendor driver on these machines.

-- 
Ville Syrjälä
Intel OTC


More information about the Intel-gfx mailing list