diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-30 14:52:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-30 14:52:52 -0400 |
commit | 08acd4f8af42affd8cbed81cc1b69fa12ddb213f (patch) | |
tree | 988d15db6233b20db6a500cd5f590c6d2041462d /arch | |
parent | ccf2779544eecfcc5447e2028d1029b6d4ff7bb6 (diff) | |
parent | 008238b54ac2350babf195084ecedbcf7851a202 (diff) |
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (179 commits)
ACPI: Fix acpi_processor_idle and idle= boot parameters interaction
acpi: fix section mismatch warning in pnpacpi
intel_menlo: fix build warning
ACPI: Cleanup: Remove unneeded, multiple local dummy variables
ACPI: video - fix permissions on some proc entries
ACPI: video - properly handle errors when registering proc elements
ACPI: video - do not store invalid entries in attached_array list
ACPI: re-name acpi_pm_ops to acpi_suspend_ops
ACER_WMI/ASUS_LAPTOP: fix build bug
thinkpad_acpi: fix possible NULL pointer dereference if kstrdup failed
ACPI: check a return value correctly in acpi_power_get_context()
#if 0 acpi/bay.c:eject_removable_drive()
eeepc-laptop: add hwmon fan control
eeepc-laptop: add backlight
eeepc-laptop: add base driver
ACPI: thinkpad-acpi: bump up version to 0.20
ACPI: thinkpad-acpi: fix selects in Kconfig
ACPI: thinkpad-acpi: use a private workqueue
ACPI: thinkpad-acpi: fluff really minor fix
ACPI: thinkpad-acpi: use uppercase for "LED" on user documentation
...
Fixed conflicts in drivers/acpi/video.c and drivers/misc/intel_menlow.c
manually.
Diffstat (limited to 'arch')
-rw-r--r-- | arch/frv/kernel/pm.c | 8 | ||||
-rw-r--r-- | arch/mips/au1000/common/power.c | 35 | ||||
-rw-r--r-- | arch/x86/kernel/apm_32.c | 16 |
3 files changed, 1 insertions, 58 deletions
diff --git a/arch/frv/kernel/pm.c b/arch/frv/kernel/pm.c index c57ce3f1f2e2..73f3aeefd203 100644 --- a/arch/frv/kernel/pm.c +++ b/arch/frv/kernel/pm.c | |||
@@ -163,14 +163,11 @@ static int sysctl_pm_do_suspend(ctl_table *ctl, int write, struct file *filp, | |||
163 | if ((mode != 1) && (mode != 5)) | 163 | if ((mode != 1) && (mode != 5)) |
164 | return -EINVAL; | 164 | return -EINVAL; |
165 | 165 | ||
166 | retval = pm_send_all(PM_SUSPEND, (void *)3); | ||
167 | |||
168 | if (retval == 0) { | 166 | if (retval == 0) { |
169 | if (mode == 5) | 167 | if (mode == 5) |
170 | retval = pm_do_bus_sleep(); | 168 | retval = pm_do_bus_sleep(); |
171 | else | 169 | else |
172 | retval = pm_do_suspend(); | 170 | retval = pm_do_suspend(); |
173 | pm_send_all(PM_RESUME, (void *)0); | ||
174 | } | 171 | } |
175 | 172 | ||
176 | return retval; | 173 | return retval; |
@@ -183,9 +180,6 @@ static int try_set_cmode(int new_cmode) | |||
183 | if (!(clock_cmodes_permitted & (1<<new_cmode))) | 180 | if (!(clock_cmodes_permitted & (1<<new_cmode))) |
184 | return -EINVAL; | 181 | return -EINVAL; |
185 | 182 | ||
186 | /* tell all the drivers we're suspending */ | ||
187 | pm_send_all(PM_SUSPEND, (void *)3); | ||
188 | |||
189 | /* now change cmode */ | 183 | /* now change cmode */ |
190 | local_irq_disable(); | 184 | local_irq_disable(); |
191 | frv_dma_pause_all(); | 185 | frv_dma_pause_all(); |
@@ -201,8 +195,6 @@ static int try_set_cmode(int new_cmode) | |||
201 | frv_dma_resume_all(); | 195 | frv_dma_resume_all(); |
202 | local_irq_enable(); | 196 | local_irq_enable(); |
203 | 197 | ||
204 | /* tell all the drivers we're resuming */ | ||
205 | pm_send_all(PM_RESUME, (void *)0); | ||
206 | return 0; | 198 | return 0; |
207 | } | 199 | } |
208 | 200 | ||
diff --git a/arch/mips/au1000/common/power.c b/arch/mips/au1000/common/power.c index 812a5f8b7d26..a8cd2c1b9e1b 100644 --- a/arch/mips/au1000/common/power.c +++ b/arch/mips/au1000/common/power.c | |||
@@ -251,7 +251,6 @@ int au_sleep(void) | |||
251 | static int pm_do_sleep(ctl_table * ctl, int write, struct file *file, | 251 | static int pm_do_sleep(ctl_table * ctl, int write, struct file *file, |
252 | void __user *buffer, size_t * len, loff_t *ppos) | 252 | void __user *buffer, size_t * len, loff_t *ppos) |
253 | { | 253 | { |
254 | int retval = 0; | ||
255 | #ifdef SLEEP_TEST_TIMEOUT | 254 | #ifdef SLEEP_TEST_TIMEOUT |
256 | #define TMPBUFLEN2 16 | 255 | #define TMPBUFLEN2 16 |
257 | char buf[TMPBUFLEN2], *p; | 256 | char buf[TMPBUFLEN2], *p; |
@@ -271,36 +270,12 @@ static int pm_do_sleep(ctl_table * ctl, int write, struct file *file, | |||
271 | p = buf; | 270 | p = buf; |
272 | sleep_ticks = simple_strtoul(p, &p, 0); | 271 | sleep_ticks = simple_strtoul(p, &p, 0); |
273 | #endif | 272 | #endif |
274 | retval = pm_send_all(PM_SUSPEND, (void *) 2); | ||
275 | |||
276 | if (retval) | ||
277 | return retval; | ||
278 | 273 | ||
279 | au_sleep(); | 274 | au_sleep(); |
280 | retval = pm_send_all(PM_RESUME, (void *) 0); | ||
281 | } | 275 | } |
282 | return retval; | 276 | return 0; |
283 | } | ||
284 | |||
285 | static int pm_do_suspend(ctl_table * ctl, int write, struct file *file, | ||
286 | void __user *buffer, size_t * len, loff_t *ppos) | ||
287 | { | ||
288 | int retval = 0; | ||
289 | |||
290 | if (!write) { | ||
291 | *len = 0; | ||
292 | } else { | ||
293 | retval = pm_send_all(PM_SUSPEND, (void *) 2); | ||
294 | if (retval) | ||
295 | return retval; | ||
296 | suspend_mode = 1; | ||
297 | |||
298 | retval = pm_send_all(PM_RESUME, (void *) 0); | ||
299 | } | ||
300 | return retval; | ||
301 | } | 277 | } |
302 | 278 | ||
303 | |||
304 | static int pm_do_freq(ctl_table * ctl, int write, struct file *file, | 279 | static int pm_do_freq(ctl_table * ctl, int write, struct file *file, |
305 | void __user *buffer, size_t * len, loff_t *ppos) | 280 | void __user *buffer, size_t * len, loff_t *ppos) |
306 | { | 281 | { |
@@ -414,14 +389,6 @@ static int pm_do_freq(ctl_table * ctl, int write, struct file *file, | |||
414 | 389 | ||
415 | static struct ctl_table pm_table[] = { | 390 | static struct ctl_table pm_table[] = { |
416 | { | 391 | { |
417 | .ctl_name = CTL_UNNUMBERED, | ||
418 | .procname = "suspend", | ||
419 | .data = NULL, | ||
420 | .maxlen = 0, | ||
421 | .mode = 0600, | ||
422 | .proc_handler = &pm_do_suspend | ||
423 | }, | ||
424 | { | ||
425 | .ctl_name = CTL_UNNUMBERED, | 392 | .ctl_name = CTL_UNNUMBERED, |
426 | .procname = "sleep", | 393 | .procname = "sleep", |
427 | .data = NULL, | 394 | .data = NULL, |
diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c index e4ea362e8480..bf9290e29013 100644 --- a/arch/x86/kernel/apm_32.c +++ b/arch/x86/kernel/apm_32.c | |||
@@ -1192,19 +1192,6 @@ static int suspend(int vetoable) | |||
1192 | int err; | 1192 | int err; |
1193 | struct apm_user *as; | 1193 | struct apm_user *as; |
1194 | 1194 | ||
1195 | if (pm_send_all(PM_SUSPEND, (void *)3)) { | ||
1196 | /* Vetoed */ | ||
1197 | if (vetoable) { | ||
1198 | if (apm_info.connection_version > 0x100) | ||
1199 | set_system_power_state(APM_STATE_REJECT); | ||
1200 | err = -EBUSY; | ||
1201 | ignore_sys_suspend = 0; | ||
1202 | printk(KERN_WARNING "apm: suspend was vetoed.\n"); | ||
1203 | goto out; | ||
1204 | } | ||
1205 | printk(KERN_CRIT "apm: suspend was vetoed, but suspending anyway.\n"); | ||
1206 | } | ||
1207 | |||
1208 | device_suspend(PMSG_SUSPEND); | 1195 | device_suspend(PMSG_SUSPEND); |
1209 | local_irq_disable(); | 1196 | local_irq_disable(); |
1210 | device_power_down(PMSG_SUSPEND); | 1197 | device_power_down(PMSG_SUSPEND); |
@@ -1227,9 +1214,7 @@ static int suspend(int vetoable) | |||
1227 | device_power_up(); | 1214 | device_power_up(); |
1228 | local_irq_enable(); | 1215 | local_irq_enable(); |
1229 | device_resume(); | 1216 | device_resume(); |
1230 | pm_send_all(PM_RESUME, (void *)0); | ||
1231 | queue_event(APM_NORMAL_RESUME, NULL); | 1217 | queue_event(APM_NORMAL_RESUME, NULL); |
1232 | out: | ||
1233 | spin_lock(&user_list_lock); | 1218 | spin_lock(&user_list_lock); |
1234 | for (as = user_list; as != NULL; as = as->next) { | 1219 | for (as = user_list; as != NULL; as = as->next) { |
1235 | as->suspend_wait = 0; | 1220 | as->suspend_wait = 0; |
@@ -1340,7 +1325,6 @@ static void check_events(void) | |||
1340 | if ((event != APM_NORMAL_RESUME) | 1325 | if ((event != APM_NORMAL_RESUME) |
1341 | || (ignore_normal_resume == 0)) { | 1326 | || (ignore_normal_resume == 0)) { |
1342 | device_resume(); | 1327 | device_resume(); |
1343 | pm_send_all(PM_RESUME, (void *)0); | ||
1344 | queue_event(event, NULL); | 1328 | queue_event(event, NULL); |
1345 | } | 1329 | } |
1346 | ignore_normal_resume = 0; | 1330 | ignore_normal_resume = 0; |