diff options
-rw-r--r-- | Documentation/kernel-parameters.txt | 6 | ||||
-rw-r--r-- | Documentation/power/swsusp.txt | 5 | ||||
-rw-r--r-- | arch/ia64/kernel/acpi.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/acpi/boot.c | 4 | ||||
-rw-r--r-- | drivers/acpi/hardware/hwsleep.c | 2 | ||||
-rw-r--r-- | drivers/acpi/osl.c | 3 | ||||
-rw-r--r-- | drivers/acpi/pci_irq.c | 5 | ||||
-rw-r--r-- | drivers/acpi/power.c | 6 | ||||
-rw-r--r-- | drivers/acpi/sleep/main.c | 2 | ||||
-rw-r--r-- | kernel/power/Kconfig | 9 |
10 files changed, 25 insertions, 19 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 8fd5aa40585f..8ea41b6e6a85 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -147,8 +147,10 @@ and is between 256 and 4096 characters. It is defined in the file | |||
147 | default: 0 | 147 | default: 0 |
148 | 148 | ||
149 | acpi_sleep= [HW,ACPI] Sleep options | 149 | acpi_sleep= [HW,ACPI] Sleep options |
150 | Format: { s3_bios, s3_mode } | 150 | Format: { s3_bios, s3_mode, s3_beep } |
151 | See Documentation/power/video.txt | 151 | See Documentation/power/video.txt for s3_bios and s3_mode. |
152 | s3_beep is for debugging; it makes the PC's speaker beep | ||
153 | as soon as the kernel's real-mode entry point is called. | ||
152 | 154 | ||
153 | acpi_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode | 155 | acpi_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode |
154 | Format: { level | edge | high | low } | 156 | Format: { level | edge | high | low } |
diff --git a/Documentation/power/swsusp.txt b/Documentation/power/swsusp.txt index aea7e9209667..9d60ab717a7b 100644 --- a/Documentation/power/swsusp.txt +++ b/Documentation/power/swsusp.txt | |||
@@ -386,6 +386,11 @@ before suspending; then remount them after resuming. | |||
386 | There is a work-around for this problem. For more information, see | 386 | There is a work-around for this problem. For more information, see |
387 | Documentation/usb/persist.txt. | 387 | Documentation/usb/persist.txt. |
388 | 388 | ||
389 | Q: Can I suspend-to-disk using a swap partition under LVM? | ||
390 | |||
391 | A: No. You can suspend successfully, but you'll not be able to | ||
392 | resume. uswsusp should be able to work with LVM. See suspend.sf.net. | ||
393 | |||
389 | Q: I upgraded the kernel from 2.6.15 to 2.6.16. Both kernels were | 394 | Q: I upgraded the kernel from 2.6.15 to 2.6.16. Both kernels were |
390 | compiled with the similar configuration files. Anyway I found that | 395 | compiled with the similar configuration files. Anyway I found that |
391 | suspend to disk (and resume) is much slower on 2.6.16 compared to | 396 | suspend to disk (and resume) is much slower on 2.6.16 compared to |
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index d20a3cc8b424..90680255032e 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
@@ -166,7 +166,7 @@ int acpi_request_vector(u32 int_type) | |||
166 | return vector; | 166 | return vector; |
167 | } | 167 | } |
168 | 168 | ||
169 | char *__acpi_map_table(unsigned long phys_addr, unsigned long size) | 169 | char *__init __acpi_map_table(unsigned long phys_addr, unsigned long size) |
170 | { | 170 | { |
171 | return __va(phys_addr); | 171 | return __va(phys_addr); |
172 | } | 172 | } |
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index fc8825d4b996..f3e049ea86eb 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c | |||
@@ -106,7 +106,7 @@ enum acpi_irq_model_id acpi_irq_model = ACPI_IRQ_MODEL_PIC; | |||
106 | #ifdef CONFIG_X86_64 | 106 | #ifdef CONFIG_X86_64 |
107 | 107 | ||
108 | /* rely on all ACPI tables being in the direct mapping */ | 108 | /* rely on all ACPI tables being in the direct mapping */ |
109 | char *__acpi_map_table(unsigned long phys_addr, unsigned long size) | 109 | char *__init __acpi_map_table(unsigned long phys_addr, unsigned long size) |
110 | { | 110 | { |
111 | if (!phys_addr || !size) | 111 | if (!phys_addr || !size) |
112 | return NULL; | 112 | return NULL; |
@@ -131,7 +131,7 @@ char *__acpi_map_table(unsigned long phys_addr, unsigned long size) | |||
131 | * from the fixed base. That's why we start at FIX_IO_APIC_BASE_END and | 131 | * from the fixed base. That's why we start at FIX_IO_APIC_BASE_END and |
132 | * count idx down while incrementing the phys address. | 132 | * count idx down while incrementing the phys address. |
133 | */ | 133 | */ |
134 | char *__acpi_map_table(unsigned long phys, unsigned long size) | 134 | char *__init __acpi_map_table(unsigned long phys, unsigned long size) |
135 | { | 135 | { |
136 | unsigned long base, offset, mapped_size; | 136 | unsigned long base, offset, mapped_size; |
137 | int idx; | 137 | int idx; |
diff --git a/drivers/acpi/hardware/hwsleep.c b/drivers/acpi/hardware/hwsleep.c index fd1c4ba63367..058d0be5cbe2 100644 --- a/drivers/acpi/hardware/hwsleep.c +++ b/drivers/acpi/hardware/hwsleep.c | |||
@@ -286,13 +286,13 @@ acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state) | |||
286 | } | 286 | } |
287 | 287 | ||
288 | /* | 288 | /* |
289 | * 1) Disable/Clear all GPEs | ||
289 | * 2) Enable all wakeup GPEs | 290 | * 2) Enable all wakeup GPEs |
290 | */ | 291 | */ |
291 | status = acpi_hw_disable_all_gpes(); | 292 | status = acpi_hw_disable_all_gpes(); |
292 | if (ACPI_FAILURE(status)) { | 293 | if (ACPI_FAILURE(status)) { |
293 | return_ACPI_STATUS(status); | 294 | return_ACPI_STATUS(status); |
294 | } | 295 | } |
295 | |||
296 | acpi_gbl_system_awake_and_running = FALSE; | 296 | acpi_gbl_system_awake_and_running = FALSE; |
297 | 297 | ||
298 | status = acpi_hw_enable_all_wakeup_gpes(); | 298 | status = acpi_hw_enable_all_wakeup_gpes(); |
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index 07c18dbde698..0c41db3075a5 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c | |||
@@ -258,7 +258,8 @@ acpi_physical_address __init acpi_os_get_root_pointer(void) | |||
258 | } | 258 | } |
259 | } | 259 | } |
260 | 260 | ||
261 | void __iomem *acpi_os_map_memory(acpi_physical_address phys, acpi_size size) | 261 | void __iomem *__init_refok |
262 | acpi_os_map_memory(acpi_physical_address phys, acpi_size size) | ||
262 | { | 263 | { |
263 | if (phys > ULONG_MAX) { | 264 | if (phys > ULONG_MAX) { |
264 | printk(KERN_ERR PREFIX "Cannot map memory that high\n"); | 265 | printk(KERN_ERR PREFIX "Cannot map memory that high\n"); |
diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c index 62010c2481b3..76d9c669d2d8 100644 --- a/drivers/acpi/pci_irq.c +++ b/drivers/acpi/pci_irq.c | |||
@@ -51,10 +51,8 @@ static struct acpi_prt_entry *acpi_pci_irq_find_prt_entry(int segment, | |||
51 | int bus, | 51 | int bus, |
52 | int device, int pin) | 52 | int device, int pin) |
53 | { | 53 | { |
54 | struct list_head *node = NULL; | ||
55 | struct acpi_prt_entry *entry = NULL; | 54 | struct acpi_prt_entry *entry = NULL; |
56 | 55 | ||
57 | |||
58 | if (!acpi_prt.count) | 56 | if (!acpi_prt.count) |
59 | return NULL; | 57 | return NULL; |
60 | 58 | ||
@@ -64,8 +62,7 @@ static struct acpi_prt_entry *acpi_pci_irq_find_prt_entry(int segment, | |||
64 | * | 62 | * |
65 | */ | 63 | */ |
66 | spin_lock(&acpi_prt_lock); | 64 | spin_lock(&acpi_prt_lock); |
67 | list_for_each(node, &acpi_prt.entries) { | 65 | list_for_each_entry(entry, &acpi_prt.entries, node) { |
68 | entry = list_entry(node, struct acpi_prt_entry, node); | ||
69 | if ((segment == entry->id.segment) | 66 | if ((segment == entry->id.segment) |
70 | && (bus == entry->id.bus) | 67 | && (bus == entry->id.bus) |
71 | && (device == entry->id.device) | 68 | && (device == entry->id.device) |
diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c index af1769a20c7a..76bf6d90c700 100644 --- a/drivers/acpi/power.c +++ b/drivers/acpi/power.c | |||
@@ -458,11 +458,9 @@ int acpi_power_transition(struct acpi_device *device, int state) | |||
458 | } | 458 | } |
459 | 459 | ||
460 | end: | 460 | end: |
461 | if (result) { | 461 | if (result) |
462 | device->power.state = ACPI_STATE_UNKNOWN; | 462 | device->power.state = ACPI_STATE_UNKNOWN; |
463 | printk(KERN_WARNING PREFIX "Transitioning device [%s] to D%d\n", | 463 | else { |
464 | device->pnp.bus_id, state); | ||
465 | } else { | ||
466 | /* We shouldn't change the state till all above operations succeed */ | 464 | /* We shouldn't change the state till all above operations succeed */ |
467 | device->power.state = state; | 465 | device->power.state = state; |
468 | } | 466 | } |
diff --git a/drivers/acpi/sleep/main.c b/drivers/acpi/sleep/main.c index 7f97e32fc33f..293a1cbb47c0 100644 --- a/drivers/acpi/sleep/main.c +++ b/drivers/acpi/sleep/main.c | |||
@@ -170,7 +170,7 @@ static int acpi_pm_enter(suspend_state_t pm_state) | |||
170 | /* Reprogram control registers and execute _BFS */ | 170 | /* Reprogram control registers and execute _BFS */ |
171 | acpi_leave_sleep_state_prep(acpi_state); | 171 | acpi_leave_sleep_state_prep(acpi_state); |
172 | 172 | ||
173 | /* ACPI 3.0 specs (P62) says that it's the responsabilty | 173 | /* ACPI 3.0 specs (P62) says that it's the responsibility |
174 | * of the OSPM to clear the status bit [ implying that the | 174 | * of the OSPM to clear the status bit [ implying that the |
175 | * POWER_BUTTON event should not reach userspace ] | 175 | * POWER_BUTTON event should not reach userspace ] |
176 | */ | 176 | */ |
diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig index ef9b802738a5..79833170bb9c 100644 --- a/kernel/power/Kconfig +++ b/kernel/power/Kconfig | |||
@@ -74,8 +74,8 @@ config PM_TRACE_RTC | |||
74 | RTC across reboots, so that you can debug a machine that just hangs | 74 | RTC across reboots, so that you can debug a machine that just hangs |
75 | during suspend (or more commonly, during resume). | 75 | during suspend (or more commonly, during resume). |
76 | 76 | ||
77 | To use this debugging feature you should attempt to suspend the machine, | 77 | To use this debugging feature you should attempt to suspend the |
78 | then reboot it, then run | 78 | machine, reboot it and then run |
79 | 79 | ||
80 | dmesg -s 1000000 | grep 'hash matches' | 80 | dmesg -s 1000000 | grep 'hash matches' |
81 | 81 | ||
@@ -123,7 +123,10 @@ config HIBERNATION | |||
123 | called "hibernation" in user interfaces. STD checkpoints the | 123 | called "hibernation" in user interfaces. STD checkpoints the |
124 | system and powers it off; and restores that checkpoint on reboot. | 124 | system and powers it off; and restores that checkpoint on reboot. |
125 | 125 | ||
126 | You can suspend your machine with 'echo disk > /sys/power/state'. | 126 | You can suspend your machine with 'echo disk > /sys/power/state' |
127 | after placing resume=/dev/swappartition on the kernel command line | ||
128 | in your bootloader's configuration file. | ||
129 | |||
127 | Alternatively, you can use the additional userland tools available | 130 | Alternatively, you can use the additional userland tools available |
128 | from <http://suspend.sf.net>. | 131 | from <http://suspend.sf.net>. |
129 | 132 | ||