-
- Downloads
PM: Introduce PM_EVENT_HIBERNATE callback state
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:Rafael J. Wysocki <rjw@sisk.pl> Acked-by:
Pavel Machek <pavel@ucw.cz> Tested-by:
Jeff Chua <jeff.chua.linux@gmail.com> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
Showing
- Documentation/power/devices.txt 8 additions, 5 deletionsDocumentation/power/devices.txt
- drivers/ata/ahci.c 1 addition, 1 deletiondrivers/ata/ahci.c
- drivers/ata/ata_piix.c 1 addition, 1 deletiondrivers/ata/ata_piix.c
- drivers/ata/libata-core.c 1 addition, 1 deletiondrivers/ata/libata-core.c
- drivers/ide/ppc/pmac.c 2 additions, 2 deletionsdrivers/ide/ppc/pmac.c
- drivers/macintosh/mediabay.c 2 additions, 1 deletiondrivers/macintosh/mediabay.c
- drivers/pci/pci.c 1 addition, 0 deletionsdrivers/pci/pci.c
- drivers/scsi/aic7xxx/aic79xx_osm_pci.c 1 addition, 1 deletiondrivers/scsi/aic7xxx/aic79xx_osm_pci.c
- drivers/scsi/aic7xxx/aic7xxx_osm_pci.c 1 addition, 1 deletiondrivers/scsi/aic7xxx/aic7xxx_osm_pci.c
- drivers/scsi/mesh.c 1 addition, 0 deletionsdrivers/scsi/mesh.c
- drivers/scsi/sd.c 1 addition, 2 deletionsdrivers/scsi/sd.c
- drivers/usb/host/sl811-hcd.c 1 addition, 0 deletionsdrivers/usb/host/sl811-hcd.c
- drivers/usb/host/u132-hcd.c 8 additions, 3 deletionsdrivers/usb/host/u132-hcd.c
- drivers/video/chipsfb.c 1 addition, 1 deletiondrivers/video/chipsfb.c
- drivers/video/nvidia/nvidia.c 1 addition, 1 deletiondrivers/video/nvidia/nvidia.c
- include/linux/pm.h 8 additions, 1 deletioninclude/linux/pm.h
- kernel/power/disk.c 2 additions, 2 deletionskernel/power/disk.c
- net/rfkill/rfkill.c 1 addition, 1 deletionnet/rfkill/rfkill.c
Loading
Please register or sign in to comment