diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/power/Kconfig | 4 | ||||
| -rw-r--r-- | kernel/power/poweroff.c | 2 | ||||
| -rw-r--r-- | kernel/power/process.c | 2 | ||||
| -rw-r--r-- | kernel/power/qos.c | 1 | ||||
| -rw-r--r-- | kernel/time/clockevents.c | 24 | ||||
| -rw-r--r-- | kernel/time/timekeeping.c | 2 |
6 files changed, 33 insertions, 2 deletions
diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig index a70518c9d82f..5dfdc9ea180b 100644 --- a/kernel/power/Kconfig +++ b/kernel/power/Kconfig | |||
| @@ -263,6 +263,10 @@ config PM_GENERIC_DOMAINS | |||
| 263 | bool | 263 | bool |
| 264 | depends on PM | 264 | depends on PM |
| 265 | 265 | ||
| 266 | config PM_GENERIC_DOMAINS_SLEEP | ||
| 267 | def_bool y | ||
| 268 | depends on PM_SLEEP && PM_GENERIC_DOMAINS | ||
| 269 | |||
| 266 | config PM_GENERIC_DOMAINS_RUNTIME | 270 | config PM_GENERIC_DOMAINS_RUNTIME |
| 267 | def_bool y | 271 | def_bool y |
| 268 | depends on PM_RUNTIME && PM_GENERIC_DOMAINS | 272 | depends on PM_RUNTIME && PM_GENERIC_DOMAINS |
diff --git a/kernel/power/poweroff.c b/kernel/power/poweroff.c index d52359374e85..68197a4e8fc9 100644 --- a/kernel/power/poweroff.c +++ b/kernel/power/poweroff.c | |||
| @@ -37,7 +37,7 @@ static struct sysrq_key_op sysrq_poweroff_op = { | |||
| 37 | .enable_mask = SYSRQ_ENABLE_BOOT, | 37 | .enable_mask = SYSRQ_ENABLE_BOOT, |
| 38 | }; | 38 | }; |
| 39 | 39 | ||
| 40 | static int pm_sysrq_init(void) | 40 | static int __init pm_sysrq_init(void) |
| 41 | { | 41 | { |
| 42 | register_sysrq_key('o', &sysrq_poweroff_op); | 42 | register_sysrq_key('o', &sysrq_poweroff_op); |
| 43 | return 0; | 43 | return 0; |
diff --git a/kernel/power/process.c b/kernel/power/process.c index 19db29f67558..87da817f9e13 100644 --- a/kernel/power/process.c +++ b/kernel/power/process.c | |||
| @@ -79,7 +79,7 @@ static int try_to_freeze_tasks(bool user_only) | |||
| 79 | 79 | ||
| 80 | /* | 80 | /* |
| 81 | * We need to retry, but first give the freezing tasks some | 81 | * We need to retry, but first give the freezing tasks some |
| 82 | * time to enter the regrigerator. | 82 | * time to enter the refrigerator. |
| 83 | */ | 83 | */ |
| 84 | msleep(10); | 84 | msleep(10); |
| 85 | } | 85 | } |
diff --git a/kernel/power/qos.c b/kernel/power/qos.c index 6a031e684026..846bd42c7ed1 100644 --- a/kernel/power/qos.c +++ b/kernel/power/qos.c | |||
| @@ -139,6 +139,7 @@ static inline int pm_qos_get_value(struct pm_qos_constraints *c) | |||
| 139 | default: | 139 | default: |
| 140 | /* runtime check for not using enum */ | 140 | /* runtime check for not using enum */ |
| 141 | BUG(); | 141 | BUG(); |
| 142 | return PM_QOS_DEFAULT_VALUE; | ||
| 142 | } | 143 | } |
| 143 | } | 144 | } |
| 144 | 145 | ||
diff --git a/kernel/time/clockevents.c b/kernel/time/clockevents.c index 7e1ce012a851..30b6de0d977c 100644 --- a/kernel/time/clockevents.c +++ b/kernel/time/clockevents.c | |||
| @@ -397,6 +397,30 @@ void clockevents_exchange_device(struct clock_event_device *old, | |||
| 397 | local_irq_restore(flags); | 397 | local_irq_restore(flags); |
| 398 | } | 398 | } |
| 399 | 399 | ||
| 400 | /** | ||
| 401 | * clockevents_suspend - suspend clock devices | ||
| 402 | */ | ||
| 403 | void clockevents_suspend(void) | ||
| 404 | { | ||
| 405 | struct clock_event_device *dev; | ||
| 406 | |||
| 407 | list_for_each_entry_reverse(dev, &clockevent_devices, list) | ||
| 408 | if (dev->suspend) | ||
| 409 | dev->suspend(dev); | ||
| 410 | } | ||
| 411 | |||
| 412 | /** | ||
| 413 | * clockevents_resume - resume clock devices | ||
| 414 | */ | ||
| 415 | void clockevents_resume(void) | ||
| 416 | { | ||
| 417 | struct clock_event_device *dev; | ||
| 418 | |||
| 419 | list_for_each_entry(dev, &clockevent_devices, list) | ||
| 420 | if (dev->resume) | ||
| 421 | dev->resume(dev); | ||
| 422 | } | ||
| 423 | |||
| 400 | #ifdef CONFIG_GENERIC_CLOCKEVENTS | 424 | #ifdef CONFIG_GENERIC_CLOCKEVENTS |
| 401 | /** | 425 | /** |
| 402 | * clockevents_notify - notification about relevant events | 426 | * clockevents_notify - notification about relevant events |
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index d3b91e75cecd..5ce06a3fa91e 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c | |||
| @@ -776,6 +776,7 @@ static void timekeeping_resume(void) | |||
| 776 | 776 | ||
| 777 | read_persistent_clock(&ts); | 777 | read_persistent_clock(&ts); |
| 778 | 778 | ||
| 779 | clockevents_resume(); | ||
| 779 | clocksource_resume(); | 780 | clocksource_resume(); |
| 780 | 781 | ||
| 781 | write_seqlock_irqsave(&tk->lock, flags); | 782 | write_seqlock_irqsave(&tk->lock, flags); |
| @@ -835,6 +836,7 @@ static int timekeeping_suspend(void) | |||
| 835 | 836 | ||
| 836 | clockevents_notify(CLOCK_EVT_NOTIFY_SUSPEND, NULL); | 837 | clockevents_notify(CLOCK_EVT_NOTIFY_SUSPEND, NULL); |
| 837 | clocksource_suspend(); | 838 | clocksource_suspend(); |
| 839 | clockevents_suspend(); | ||
| 838 | 840 | ||
| 839 | return 0; | 841 | return 0; |
| 840 | } | 842 | } |
