diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2011-04-26 13:15:07 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rjw@sisk.pl> | 2011-05-11 15:37:15 -0400 |
commit | 2e711c04dbbf7a7732a3f7073b1fc285d12b369d (patch) | |
tree | dbc06a3fff744144d7937a205a91fd8ce71585d4 /kernel | |
parent | f5a592f7d74e38c5007876c731e6bf5580072e63 (diff) |
PM: Remove sysdev suspend, resume and shutdown operations
Since suspend, resume and shutdown operations in struct sysdev_class
and struct sysdev_driver are not used any more, remove them. Also
drop sysdev_suspend(), sysdev_resume() and sysdev_shutdown() used
for executing those operations and modify all of their users
accordingly. This reduces kernel code size quite a bit and reduces
its complexity.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/kexec.c | 9 | ||||
-rw-r--r-- | kernel/power/hibernate.c | 18 | ||||
-rw-r--r-- | kernel/power/suspend.c | 8 | ||||
-rw-r--r-- | kernel/sys.c | 3 |
4 files changed, 4 insertions, 34 deletions
diff --git a/kernel/kexec.c b/kernel/kexec.c index 87b77de03dd3..8d814cbc8109 100644 --- a/kernel/kexec.c +++ b/kernel/kexec.c | |||
@@ -1531,13 +1531,7 @@ int kernel_kexec(void) | |||
1531 | if (error) | 1531 | if (error) |
1532 | goto Enable_cpus; | 1532 | goto Enable_cpus; |
1533 | local_irq_disable(); | 1533 | local_irq_disable(); |
1534 | /* Suspend system devices */ | 1534 | error = syscore_suspend(); |
1535 | error = sysdev_suspend(PMSG_FREEZE); | ||
1536 | if (!error) { | ||
1537 | error = syscore_suspend(); | ||
1538 | if (error) | ||
1539 | sysdev_resume(); | ||
1540 | } | ||
1541 | if (error) | 1535 | if (error) |
1542 | goto Enable_irqs; | 1536 | goto Enable_irqs; |
1543 | } else | 1537 | } else |
@@ -1553,7 +1547,6 @@ int kernel_kexec(void) | |||
1553 | #ifdef CONFIG_KEXEC_JUMP | 1547 | #ifdef CONFIG_KEXEC_JUMP |
1554 | if (kexec_image->preserve_context) { | 1548 | if (kexec_image->preserve_context) { |
1555 | syscore_resume(); | 1549 | syscore_resume(); |
1556 | sysdev_resume(); | ||
1557 | Enable_irqs: | 1550 | Enable_irqs: |
1558 | local_irq_enable(); | 1551 | local_irq_enable(); |
1559 | Enable_cpus: | 1552 | Enable_cpus: |
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c index 50aae660174d..554d3b049f35 100644 --- a/kernel/power/hibernate.c +++ b/kernel/power/hibernate.c | |||
@@ -272,12 +272,7 @@ static int create_image(int platform_mode) | |||
272 | 272 | ||
273 | local_irq_disable(); | 273 | local_irq_disable(); |
274 | 274 | ||
275 | error = sysdev_suspend(PMSG_FREEZE); | 275 | error = syscore_suspend(); |
276 | if (!error) { | ||
277 | error = syscore_suspend(); | ||
278 | if (error) | ||
279 | sysdev_resume(); | ||
280 | } | ||
281 | if (error) { | 276 | if (error) { |
282 | printk(KERN_ERR "PM: Some system devices failed to power down, " | 277 | printk(KERN_ERR "PM: Some system devices failed to power down, " |
283 | "aborting hibernation\n"); | 278 | "aborting hibernation\n"); |
@@ -302,7 +297,6 @@ static int create_image(int platform_mode) | |||
302 | 297 | ||
303 | Power_up: | 298 | Power_up: |
304 | syscore_resume(); | 299 | syscore_resume(); |
305 | sysdev_resume(); | ||
306 | /* NOTE: dpm_resume_noirq() is just a resume() for devices | 300 | /* NOTE: dpm_resume_noirq() is just a resume() for devices |
307 | * that suspended with irqs off ... no overall powerup. | 301 | * that suspended with irqs off ... no overall powerup. |
308 | */ | 302 | */ |
@@ -409,12 +403,7 @@ static int resume_target_kernel(bool platform_mode) | |||
409 | 403 | ||
410 | local_irq_disable(); | 404 | local_irq_disable(); |
411 | 405 | ||
412 | error = sysdev_suspend(PMSG_QUIESCE); | 406 | error = syscore_suspend(); |
413 | if (!error) { | ||
414 | error = syscore_suspend(); | ||
415 | if (error) | ||
416 | sysdev_resume(); | ||
417 | } | ||
418 | if (error) | 407 | if (error) |
419 | goto Enable_irqs; | 408 | goto Enable_irqs; |
420 | 409 | ||
@@ -442,7 +431,6 @@ static int resume_target_kernel(bool platform_mode) | |||
442 | touch_softlockup_watchdog(); | 431 | touch_softlockup_watchdog(); |
443 | 432 | ||
444 | syscore_resume(); | 433 | syscore_resume(); |
445 | sysdev_resume(); | ||
446 | 434 | ||
447 | Enable_irqs: | 435 | Enable_irqs: |
448 | local_irq_enable(); | 436 | local_irq_enable(); |
@@ -528,7 +516,6 @@ int hibernation_platform_enter(void) | |||
528 | goto Platform_finish; | 516 | goto Platform_finish; |
529 | 517 | ||
530 | local_irq_disable(); | 518 | local_irq_disable(); |
531 | sysdev_suspend(PMSG_HIBERNATE); | ||
532 | syscore_suspend(); | 519 | syscore_suspend(); |
533 | if (pm_wakeup_pending()) { | 520 | if (pm_wakeup_pending()) { |
534 | error = -EAGAIN; | 521 | error = -EAGAIN; |
@@ -541,7 +528,6 @@ int hibernation_platform_enter(void) | |||
541 | 528 | ||
542 | Power_up: | 529 | Power_up: |
543 | syscore_resume(); | 530 | syscore_resume(); |
544 | sysdev_resume(); | ||
545 | local_irq_enable(); | 531 | local_irq_enable(); |
546 | enable_nonboot_cpus(); | 532 | enable_nonboot_cpus(); |
547 | 533 | ||
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index 8935369d503a..732d77a957e7 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c | |||
@@ -163,19 +163,13 @@ static int suspend_enter(suspend_state_t state) | |||
163 | arch_suspend_disable_irqs(); | 163 | arch_suspend_disable_irqs(); |
164 | BUG_ON(!irqs_disabled()); | 164 | BUG_ON(!irqs_disabled()); |
165 | 165 | ||
166 | error = sysdev_suspend(PMSG_SUSPEND); | 166 | error = syscore_suspend(); |
167 | if (!error) { | ||
168 | error = syscore_suspend(); | ||
169 | if (error) | ||
170 | sysdev_resume(); | ||
171 | } | ||
172 | if (!error) { | 167 | if (!error) { |
173 | if (!(suspend_test(TEST_CORE) || pm_wakeup_pending())) { | 168 | if (!(suspend_test(TEST_CORE) || pm_wakeup_pending())) { |
174 | error = suspend_ops->enter(state); | 169 | error = suspend_ops->enter(state); |
175 | events_check_enabled = false; | 170 | events_check_enabled = false; |
176 | } | 171 | } |
177 | syscore_resume(); | 172 | syscore_resume(); |
178 | sysdev_resume(); | ||
179 | } | 173 | } |
180 | 174 | ||
181 | arch_suspend_enable_irqs(); | 175 | arch_suspend_enable_irqs(); |
diff --git a/kernel/sys.c b/kernel/sys.c index af468edf096a..f0c10385f30c 100644 --- a/kernel/sys.c +++ b/kernel/sys.c | |||
@@ -315,7 +315,6 @@ void kernel_restart_prepare(char *cmd) | |||
315 | blocking_notifier_call_chain(&reboot_notifier_list, SYS_RESTART, cmd); | 315 | blocking_notifier_call_chain(&reboot_notifier_list, SYS_RESTART, cmd); |
316 | system_state = SYSTEM_RESTART; | 316 | system_state = SYSTEM_RESTART; |
317 | device_shutdown(); | 317 | device_shutdown(); |
318 | sysdev_shutdown(); | ||
319 | syscore_shutdown(); | 318 | syscore_shutdown(); |
320 | } | 319 | } |
321 | 320 | ||
@@ -354,7 +353,6 @@ static void kernel_shutdown_prepare(enum system_states state) | |||
354 | void kernel_halt(void) | 353 | void kernel_halt(void) |
355 | { | 354 | { |
356 | kernel_shutdown_prepare(SYSTEM_HALT); | 355 | kernel_shutdown_prepare(SYSTEM_HALT); |
357 | sysdev_shutdown(); | ||
358 | syscore_shutdown(); | 356 | syscore_shutdown(); |
359 | printk(KERN_EMERG "System halted.\n"); | 357 | printk(KERN_EMERG "System halted.\n"); |
360 | kmsg_dump(KMSG_DUMP_HALT); | 358 | kmsg_dump(KMSG_DUMP_HALT); |
@@ -374,7 +372,6 @@ void kernel_power_off(void) | |||
374 | if (pm_power_off_prepare) | 372 | if (pm_power_off_prepare) |
375 | pm_power_off_prepare(); | 373 | pm_power_off_prepare(); |
376 | disable_nonboot_cpus(); | 374 | disable_nonboot_cpus(); |
377 | sysdev_shutdown(); | ||
378 | syscore_shutdown(); | 375 | syscore_shutdown(); |
379 | printk(KERN_EMERG "Power down.\n"); | 376 | printk(KERN_EMERG "Power down.\n"); |
380 | kmsg_dump(KMSG_DUMP_POWEROFF); | 377 | kmsg_dump(KMSG_DUMP_POWEROFF); |