]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: gen4: work around hang during hibernation
authorImre Deak <imre.deak@intel.com>
Mon, 2 Mar 2015 11:04:41 +0000 (13:04 +0200)
committerJani Nikula <jani.nikula@intel.com>
Wed, 4 Mar 2015 08:08:50 +0000 (10:08 +0200)
commita5af09b345a4c0f9f9266ebaa2fbdab65175322e
treea4a558f1da26ad9fd77a6266ee09fafd821ddbed
parent92efd885408cf544613a3d76bfa24f3b6076cad9
drm/i915: gen4: work around hang during hibernation

Bjørn reported that his machine hang during hibernation and eventually
bisected the problem to the following commit:

commit 8fe08706db88e6db8dde969bf9d480575ba0c44a
Author: Imre Deak <imre.deak@intel.com>
Date:   Thu Oct 23 19:23:26 2014 +0300

    drm/i915: add poweroff_late handler

The problem seems to be that after the kernel puts the device into D3
the BIOS still tries to access it, or otherwise assumes that it's in D0.
This is clearly bogus, since ACPI mandates that devices are put into D3
by the OSPM if they are not wake-up sources. In the future we want to
unify more of the driver's runtime and system suspend paths, for example
by skipping all the system suspend/hibernation hooks if the device is
runtime suspended already. Accordingly for all other platforms the goal
is still to properly power down the device during hibernation.

v2:
- Another GEN4 Lenovo laptop had the same issue, while platforms from
  other vendors (including mobile and desktop, GEN4 and non-GEN4) seem
  to work fine. Based on this apply the workaround on all GEN4 Lenovo
  platforms.
- add code comment about failing platforms (Ville)

Reference: http://lists.freedesktop.org/archives/intel-gfx/2015-February/060633.html
Reported-and-bisected-by: Bjørn Mork <bjorn@mork.no>
Cc: stable@vger.kernel.org # v3.19
Signed-off-by: Imre Deak <imre.deak@intel.com>
Acked-by: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/i915_drv.c