• Imre Deak's avatar
    drm/i915: gen4: work around hang during hibernation · ab3be73f
    Imre Deak authored
    Bjørn reported that his machine hang during hibernation and eventually
    bisected the problem to the following commit:
    
    commit da2bc1b9
    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.htmlReported-and-bisected-by: default avatarBjørn Mork <bjorn@mork.no>
    Cc: stable@vger.kernel.org # v3.19
    Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
    Acked-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
    Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
    ab3be73f
i915_drv.c 47.1 KB