Skip to content

Commit

Permalink
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…
Browse files Browse the repository at this point in the history
…/git/rafael/suspend-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
  PM: Add empty suspend/resume device irq functions
  PM/Hibernate: Move NVS routines into a seperate file (v2).
  PM/Hibernate: Rename disk.c to hibernate.c
  PM: Separate suspend to RAM functionality from core
  Driver Core: Rework platform suspend/resume, print warning
  PM: Remove device_type suspend()/resume()
  PM/Hibernate: Move memory shrinking to snapshot.c (rev. 2)
  PM/Suspend: Do not shrink memory before suspend
  PM: Remove bus_type suspend_late()/resume_early() V2
  PM core: rename suspend and resume functions
  PM: Rename device_power_down/up()
  PM: Remove unused asm/suspend.h
  x86: unify power/cpu_(32|64).c
  x86: unify power/cpu_(32|64) copyright notes
  x86: unify power/cpu_(32|64) regarding restoring processor state
  x86: unify power/cpu_(32|64) regarding saving processor state
  x86: unify power/cpu_(32|64) global variables
  x86: unify power/cpu_(32|64) headers
  PM: Warn if interrupts are enabled during suspend-resume of sysdevs
  PM/ACPI/x86: Fix sparse warning in arch/x86/kernel/acpi/sleep.c
  • Loading branch information
Linus Torvalds committed Jun 12, 2009
2 parents c53567a + 5818a6e commit 947ec0b
Show file tree
Hide file tree
Showing 33 changed files with 984 additions and 1,122 deletions.
34 changes: 5 additions & 29 deletions Documentation/power/devices.txt
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,6 @@ may need to apply in domain-specific ways to their devices:
struct bus_type {
...
int (*suspend)(struct device *dev, pm_message_t state);
int (*suspend_late)(struct device *dev, pm_message_t state);

int (*resume_early)(struct device *dev);
int (*resume)(struct device *dev);
};

Expand Down Expand Up @@ -226,20 +223,7 @@ The phases are seen by driver notifications issued in this order:

This call should handle parts of device suspend logic that require
sleeping. It probably does work to quiesce the device which hasn't
been abstracted into class.suspend() or bus.suspend_late().

3 bus.suspend_late(dev, message) is called with IRQs disabled, and
with only one CPU active. Until the bus.resume_early() phase
completes (see later), IRQs are not enabled again. This method
won't be exposed by all busses; for message based busses like USB,
I2C, or SPI, device interactions normally require IRQs. This bus
call may be morphed into a driver call with bus-specific parameters.

This call might save low level hardware state that might otherwise
be lost in the upcoming low power state, and actually put the
device into a low power state ... so that in some cases the device
may stay partly usable until this late. This "late" call may also
help when coping with hardware that behaves badly.
been abstracted into class.suspend().

The pm_message_t parameter is currently used to refine those semantics
(described later).
Expand Down Expand Up @@ -351,19 +335,11 @@ devices processing each phase's calls before the next phase begins.

The phases are seen by driver notifications issued in this order:

1 bus.resume_early(dev) is called with IRQs disabled, and with
only one CPU active. As with bus.suspend_late(), this method
won't be supported on busses that require IRQs in order to
interact with devices.

This reverses the effects of bus.suspend_late().

2 bus.resume(dev) is called next. This may be morphed into a device
driver call with bus-specific parameters; implementations may sleep.

This reverses the effects of bus.suspend().
1 bus.resume(dev) reverses the effects of bus.suspend(). This may
be morphed into a device driver call with bus-specific parameters;
implementations may sleep.

3 class.resume(dev) is called for devices associated with a class
2 class.resume(dev) is called for devices associated with a class
that has such a method. Implementations may sleep.

This reverses the effects of class.suspend(), and would usually
Expand Down
6 changes: 0 additions & 6 deletions arch/alpha/include/asm/suspend.h

This file was deleted.

4 changes: 0 additions & 4 deletions arch/arm/include/asm/suspend.h

This file was deleted.

1 change: 0 additions & 1 deletion arch/ia64/include/asm/suspend.h

This file was deleted.

6 changes: 0 additions & 6 deletions arch/m68k/include/asm/suspend.h

This file was deleted.

6 changes: 0 additions & 6 deletions arch/mips/include/asm/suspend.h

This file was deleted.

5 changes: 0 additions & 5 deletions arch/s390/include/asm/suspend.h

This file was deleted.

4 changes: 0 additions & 4 deletions arch/um/include/asm/suspend.h

This file was deleted.

2 changes: 1 addition & 1 deletion arch/x86/kernel/acpi/sleep.c
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ int acpi_save_state_mem(void)
initial_gs = per_cpu_offset(smp_processor_id());
#endif
initial_code = (unsigned long)wakeup_long64;
saved_magic = 0x123456789abcdef0;
saved_magic = 0x123456789abcdef0L;
#endif /* CONFIG_64BIT */

return 0;
Expand Down
14 changes: 7 additions & 7 deletions arch/x86/kernel/apm_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -1233,9 +1233,9 @@ static int suspend(int vetoable)
int err;
struct apm_user *as;

device_suspend(PMSG_SUSPEND);
dpm_suspend_start(PMSG_SUSPEND);

device_power_down(PMSG_SUSPEND);
dpm_suspend_noirq(PMSG_SUSPEND);

local_irq_disable();
sysdev_suspend(PMSG_SUSPEND);
Expand All @@ -1259,9 +1259,9 @@ static int suspend(int vetoable)
sysdev_resume();
local_irq_enable();

device_power_up(PMSG_RESUME);
dpm_resume_noirq(PMSG_RESUME);

device_resume(PMSG_RESUME);
dpm_resume_end(PMSG_RESUME);
queue_event(APM_NORMAL_RESUME, NULL);
spin_lock(&user_list_lock);
for (as = user_list; as != NULL; as = as->next) {
Expand All @@ -1277,7 +1277,7 @@ static void standby(void)
{
int err;

device_power_down(PMSG_SUSPEND);
dpm_suspend_noirq(PMSG_SUSPEND);

local_irq_disable();
sysdev_suspend(PMSG_SUSPEND);
Expand All @@ -1291,7 +1291,7 @@ static void standby(void)
sysdev_resume();
local_irq_enable();

device_power_up(PMSG_RESUME);
dpm_resume_noirq(PMSG_RESUME);
}

static apm_event_t get_event(void)
Expand Down Expand Up @@ -1376,7 +1376,7 @@ static void check_events(void)
ignore_bounce = 1;
if ((event != APM_NORMAL_RESUME)
|| (ignore_normal_resume == 0)) {
device_resume(PMSG_RESUME);
dpm_resume_end(PMSG_RESUME);
queue_event(event, NULL);
}
ignore_normal_resume = 0;
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/power/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
nostackp := $(call cc-option, -fno-stack-protector)
CFLAGS_cpu_$(BITS).o := $(nostackp)

obj-$(CONFIG_PM_SLEEP) += cpu_$(BITS).o
obj-$(CONFIG_PM_SLEEP) += cpu.o
obj-$(CONFIG_HIBERNATION) += hibernate_$(BITS).o hibernate_asm_$(BITS).o
Loading

0 comments on commit 947ec0b

Please sign in to comment.