diff options
Diffstat (limited to 'include/linux/cpuidle.h')
-rw-r--r-- | include/linux/cpuidle.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h index ab70f3bc44ad..f551a9299ac9 100644 --- a/include/linux/cpuidle.h +++ b/include/linux/cpuidle.h | |||
@@ -50,6 +50,15 @@ struct cpuidle_state { | |||
50 | int index); | 50 | int index); |
51 | 51 | ||
52 | int (*enter_dead) (struct cpuidle_device *dev, int index); | 52 | int (*enter_dead) (struct cpuidle_device *dev, int index); |
53 | |||
54 | /* | ||
55 | * CPUs execute ->enter_freeze with the local tick or entire timekeeping | ||
56 | * suspended, so it must not re-enable interrupts at any point (even | ||
57 | * temporarily) or attempt to change states of clock event devices. | ||
58 | */ | ||
59 | void (*enter_freeze) (struct cpuidle_device *dev, | ||
60 | struct cpuidle_driver *drv, | ||
61 | int index); | ||
53 | }; | 62 | }; |
54 | 63 | ||
55 | /* Idle State Flags */ | 64 | /* Idle State Flags */ |
@@ -141,7 +150,7 @@ extern void cpuidle_resume(void); | |||
141 | extern int cpuidle_enable_device(struct cpuidle_device *dev); | 150 | extern int cpuidle_enable_device(struct cpuidle_device *dev); |
142 | extern void cpuidle_disable_device(struct cpuidle_device *dev); | 151 | extern void cpuidle_disable_device(struct cpuidle_device *dev); |
143 | extern int cpuidle_play_dead(void); | 152 | extern int cpuidle_play_dead(void); |
144 | extern void cpuidle_use_deepest_state(bool enable); | 153 | extern void cpuidle_enter_freeze(void); |
145 | 154 | ||
146 | extern struct cpuidle_driver *cpuidle_get_cpu_driver(struct cpuidle_device *dev); | 155 | extern struct cpuidle_driver *cpuidle_get_cpu_driver(struct cpuidle_device *dev); |
147 | #else | 156 | #else |
@@ -174,7 +183,7 @@ static inline int cpuidle_enable_device(struct cpuidle_device *dev) | |||
174 | {return -ENODEV; } | 183 | {return -ENODEV; } |
175 | static inline void cpuidle_disable_device(struct cpuidle_device *dev) { } | 184 | static inline void cpuidle_disable_device(struct cpuidle_device *dev) { } |
176 | static inline int cpuidle_play_dead(void) {return -ENODEV; } | 185 | static inline int cpuidle_play_dead(void) {return -ENODEV; } |
177 | static inline void cpuidle_use_deepest_state(bool enable) {} | 186 | static inline void cpuidle_enter_freeze(void) { } |
178 | static inline struct cpuidle_driver *cpuidle_get_cpu_driver( | 187 | static inline struct cpuidle_driver *cpuidle_get_cpu_driver( |
179 | struct cpuidle_device *dev) {return NULL; } | 188 | struct cpuidle_device *dev) {return NULL; } |
180 | #endif | 189 | #endif |