• R
    PM: Introduce PM_EVENT_HIBERNATE callback state · 3a2d5b70
    Rafael J. Wysocki 提交于
    During the last step of hibernation in the "platform" mode (with the
    help of ACPI) we use the suspend code, including the devices'
    ->suspend() methods, to prepare the system for entering the ACPI S4
    system sleep state.
    
    But at least for some devices the operations performed by the
    ->suspend() callback in that case must be different from its operations
    during regular suspend.
    
    For this reason, introduce the new PM event type PM_EVENT_HIBERNATE and
    pass it to the device drivers' ->suspend() methods during the last phase
    of hibernation, so that they can distinguish this case and handle it as
    appropriate.  Modify the drivers that handle PM_EVENT_SUSPEND in a
    special way and need to handle PM_EVENT_HIBERNATE in the same way.
    
    These changes are necessary to fix a hibernation regression related
    to the i915 driver (ref. http://lkml.org/lkml/2008/2/22/488).
    Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
    Acked-by: NPavel Machek <pavel@ucw.cz>
    Tested-by: NJeff Chua <jeff.chua.linux@gmail.com>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    3a2d5b70
pmac.c 46.5 KB