diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-20 17:33:02 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-20 17:33:02 -0500 |
| commit | 2d360fcbd851b7f9f8c23b1c30b2f3c060fa43e6 (patch) | |
| tree | 8228db95030b82921c90b95f353441946af3a677 /include | |
| parent | a767835f6dc85277e40fbfe69a29c18817d6c00b (diff) | |
| parent | 501a708f18ef911328ffd39f39738b8a7862aa8e (diff) | |
Merge branch 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
* 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
PM / Suspend: Fix bug in suspend statistics update
PM / Hibernate: Fix the early termination of test modes
PM / shmobile: Fix build of sh7372_pm_init() for CONFIG_PM unset
PM Sleep: Do not extend wakeup paths to devices with ignore_children set
PM / driver core: disable device's runtime PM during shutdown
PM / devfreq: correct Kconfig dependency
PM / devfreq: fix use after free in devfreq_remove_device
PM / shmobile: Avoid restoring the INTCS state during initialization
PM / devfreq: Remove compiler error after irq.h update
PM / QoS: Properly use the WARN() macro in dev_pm_qos_add_request()
PM / Clocks: Only disable enabled clocks in pm_clk_suspend()
ARM: mach-shmobile: sh7372 A3SP no_suspend_console fix
PM / shmobile: Don't skip debugging output in pd_power_up()
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/device.h | 5 | ||||
| -rw-r--r-- | include/linux/pm.h | 2 | ||||
| -rw-r--r-- | include/linux/pm_runtime.h | 6 |
3 files changed, 6 insertions, 7 deletions
diff --git a/include/linux/device.h b/include/linux/device.h index ffbcf95cd97d..52b3a4111df9 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -682,6 +682,11 @@ static inline bool device_async_suspend_enabled(struct device *dev) | |||
| 682 | return !!dev->power.async_suspend; | 682 | return !!dev->power.async_suspend; |
| 683 | } | 683 | } |
| 684 | 684 | ||
| 685 | static inline void pm_suspend_ignore_children(struct device *dev, bool enable) | ||
| 686 | { | ||
| 687 | dev->power.ignore_children = enable; | ||
| 688 | } | ||
| 689 | |||
| 685 | static inline void device_lock(struct device *dev) | 690 | static inline void device_lock(struct device *dev) |
| 686 | { | 691 | { |
| 687 | mutex_lock(&dev->mutex); | 692 | mutex_lock(&dev->mutex); |
diff --git a/include/linux/pm.h b/include/linux/pm.h index f15acb646813..5c4c8b18c8b7 100644 --- a/include/linux/pm.h +++ b/include/linux/pm.h | |||
| @@ -447,6 +447,7 @@ struct dev_pm_info { | |||
| 447 | unsigned int async_suspend:1; | 447 | unsigned int async_suspend:1; |
| 448 | bool is_prepared:1; /* Owned by the PM core */ | 448 | bool is_prepared:1; /* Owned by the PM core */ |
| 449 | bool is_suspended:1; /* Ditto */ | 449 | bool is_suspended:1; /* Ditto */ |
| 450 | bool ignore_children:1; | ||
| 450 | spinlock_t lock; | 451 | spinlock_t lock; |
| 451 | #ifdef CONFIG_PM_SLEEP | 452 | #ifdef CONFIG_PM_SLEEP |
| 452 | struct list_head entry; | 453 | struct list_head entry; |
| @@ -464,7 +465,6 @@ struct dev_pm_info { | |||
| 464 | atomic_t usage_count; | 465 | atomic_t usage_count; |
| 465 | atomic_t child_count; | 466 | atomic_t child_count; |
| 466 | unsigned int disable_depth:3; | 467 | unsigned int disable_depth:3; |
| 467 | unsigned int ignore_children:1; | ||
| 468 | unsigned int idle_notification:1; | 468 | unsigned int idle_notification:1; |
| 469 | unsigned int request_pending:1; | 469 | unsigned int request_pending:1; |
| 470 | unsigned int deferred_resume:1; | 470 | unsigned int deferred_resume:1; |
diff --git a/include/linux/pm_runtime.h b/include/linux/pm_runtime.h index d8d903619642..d3085e72a0ee 100644 --- a/include/linux/pm_runtime.h +++ b/include/linux/pm_runtime.h | |||
| @@ -52,11 +52,6 @@ static inline bool pm_children_suspended(struct device *dev) | |||
| 52 | || !atomic_read(&dev->power.child_count); | 52 | || !atomic_read(&dev->power.child_count); |
| 53 | } | 53 | } |
| 54 | 54 | ||
| 55 | static inline void pm_suspend_ignore_children(struct device *dev, bool enable) | ||
| 56 | { | ||
| 57 | dev->power.ignore_children = enable; | ||
| 58 | } | ||
| 59 | |||
| 60 | static inline void pm_runtime_get_noresume(struct device *dev) | 55 | static inline void pm_runtime_get_noresume(struct device *dev) |
| 61 | { | 56 | { |
| 62 | atomic_inc(&dev->power.usage_count); | 57 | atomic_inc(&dev->power.usage_count); |
| @@ -130,7 +125,6 @@ static inline void pm_runtime_allow(struct device *dev) {} | |||
| 130 | static inline void pm_runtime_forbid(struct device *dev) {} | 125 | static inline void pm_runtime_forbid(struct device *dev) {} |
| 131 | 126 | ||
| 132 | static inline bool pm_children_suspended(struct device *dev) { return false; } | 127 | static inline bool pm_children_suspended(struct device *dev) { return false; } |
| 133 | static inline void pm_suspend_ignore_children(struct device *dev, bool en) {} | ||
| 134 | static inline void pm_runtime_get_noresume(struct device *dev) {} | 128 | static inline void pm_runtime_get_noresume(struct device *dev) {} |
| 135 | static inline void pm_runtime_put_noidle(struct device *dev) {} | 129 | static inline void pm_runtime_put_noidle(struct device *dev) {} |
| 136 | static inline bool device_run_wake(struct device *dev) { return false; } | 130 | static inline bool device_run_wake(struct device *dev) { return false; } |
