On Sat, 29 Aug 2015, Mikko Rapeli <[email protected]> wrote:
> Please, please merge this patch already. Without it hibernation poweroff
> is broken for several users. There were some doubts raised over the
> approach on lkml review but Imre as maintainer thinks this is the right
> thing to do and users like me need this patch.
>
> Tested again with Thinkpad T60 and kernel version 4.1.6.
>
> Tested-by: Mikko Rapeli <[email protected]>

Pushed to drm-intel-next-fixes.

BR,
Jani.

>
> -Mikko
>
> On Tue, Jun 30, 2015 at 05:06:47PM +0300, Imre Deak wrote:
>> commit da2bc1b9db3351addd293e5b82757efe1f77ed1d
>> Author: Imre Deak <[email protected]>
>> 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 <[email protected]>
>> 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
>> with our future plans to unify more the runtime and system suspend/resume
>> paths. Since an exact blacklist seems to be impractical (multiple GENs and
>> BIOS vendors are affected) apply the workaround on everything pre GEN6.
>> 
>> [1] http://lists.freedesktop.org/archives/intel-gfx/2015-February/060710.html
>> [2] https://lkml.org/lkml/2015/6/22/274
>> 
>> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=95061
>> Reported-by: Ilya Tumaykin <[email protected]>
>> Reported-by: Dirk Griesbach <[email protected]>
>> Reported-by: Pavel Machek <[email protected]>
>> Reported-by: Mikko Rapeli <[email protected]>
>> Reported-by: Paul Bolle <[email protected]>
>> CC: [email protected]
>> Signed-off-by: Imre Deak <[email protected]>
>> ---
>>  drivers/gpu/drm/i915/i915_drv.c | 15 +++++++++------
>>  1 file changed, 9 insertions(+), 6 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/i915_drv.c 
>> b/drivers/gpu/drm/i915/i915_drv.c
>> index e44dc0d..1e675ff 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.c
>> +++ b/drivers/gpu/drm/i915/i915_drv.c
>> @@ -664,15 +664,18 @@ static int i915_drm_suspend_late(struct drm_device 
>> *drm_dev, bool hibernation)
>>  
>>      pci_disable_device(drm_dev->pdev);
>>      /*
>> -     * During hibernation on some GEN4 platforms the BIOS may try to access
>> +     * During hibernation on some platforms the BIOS may try to access
>>       * the device even though it's already in D3 and hang the machine. So
>>       * leave the device in D0 on those platforms and hope the BIOS will
>> -     * power down the device properly. Platforms where this was seen:
>> -     * Lenovo Thinkpad X301, X61s
>> +     * power down the device properly. The issue was seen on multiple old
>> +     * GENs with different BIOS vendors, so having an explicit blacklist
>> +     * is inpractical; apply the workaround on everything pre GEN6. The
>> +     * platforms where the issue was seen:
>> +     * Lenovo Thinkpad X301, X61s, X60, T60, X41
>> +     * Fujitsu FSC S7110
>> +     * Acer Aspire 1830T
>>       */
>> -    if (!(hibernation &&
>> -          drm_dev->pdev->subsystem_vendor == PCI_VENDOR_ID_LENOVO &&
>> -          INTEL_INFO(dev_priv)->gen == 4))
>> +    if (!(hibernation && INTEL_INFO(dev_priv)->gen < 6))
>>              pci_set_power_state(drm_dev->pdev, PCI_D3hot);
>>  
>>      return 0;
>> -- 
>> 2.1.4
>> 

-- 
Jani Nikula, Intel Open Source Technology Center
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to