aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2011-04-26 13:15:07 -0400
committerRafael J. Wysocki <rjw@sisk.pl>2011-05-11 15:37:15 -0400
commit2e711c04dbbf7a7732a3f7073b1fc285d12b369d (patch)
treedbc06a3fff744144d7937a205a91fd8ce71585d4 /kernel
parentf5a592f7d74e38c5007876c731e6bf5580072e63 (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.c9
-rw-r--r--kernel/power/hibernate.c18
-rw-r--r--kernel/power/suspend.c8
-rw-r--r--kernel/sys.c3
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)
354void kernel_halt(void) 353void 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);