diff options
Diffstat (limited to 'include/linux/cpuidle.h')
| -rw-r--r-- | include/linux/cpuidle.h | 23 | 
1 files changed, 10 insertions, 13 deletions
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h index 480c14dc1dd..3c86faa5979 100644 --- a/include/linux/cpuidle.h +++ b/include/linux/cpuidle.h @@ -57,6 +57,7 @@ struct cpuidle_state {  /* Idle State Flags */  #define CPUIDLE_FLAG_TIME_VALID	(0x01) /* is residency time measurable? */  #define CPUIDLE_FLAG_COUPLED	(0x02) /* state applies to multiple cpus */ +#define CPUIDLE_FLAG_TIMER_STOP (0x04)  /* timer is stopped on this state */  #define CPUIDLE_DRIVER_FLAGS_MASK (0xFFFF0000) @@ -104,8 +105,8 @@ struct cpuidle_driver {  	struct module 		*owner;  	int                     refcnt; -	/* set to 1 to use the core cpuidle time keeping (for all states). */ -	unsigned int		en_core_tk_irqen:1; +        /* used by the cpuidle framework to setup the broadcast timer */ +	unsigned int            bctimer:1;  	/* states array must be ordered in decreasing power consumption */  	struct cpuidle_state	states[CPUIDLE_STATE_MAX];  	int			state_count; @@ -122,17 +123,15 @@ extern void cpuidle_driver_unref(void);  extern void cpuidle_unregister_driver(struct cpuidle_driver *drv);  extern int cpuidle_register_device(struct cpuidle_device *dev);  extern void cpuidle_unregister_device(struct cpuidle_device *dev); - +extern int cpuidle_register(struct cpuidle_driver *drv, +			    const struct cpumask *const coupled_cpus); +extern void cpuidle_unregister(struct cpuidle_driver *drv);  extern void cpuidle_pause_and_lock(void);  extern void cpuidle_resume_and_unlock(void);  extern void cpuidle_pause(void);  extern void cpuidle_resume(void);  extern int cpuidle_enable_device(struct cpuidle_device *dev);  extern void cpuidle_disable_device(struct cpuidle_device *dev); -extern int cpuidle_wrap_enter(struct cpuidle_device *dev, -				struct cpuidle_driver *drv, int index, -				int (*enter)(struct cpuidle_device *dev, -					struct cpuidle_driver *drv, int index));  extern int cpuidle_play_dead(void);  extern struct cpuidle_driver *cpuidle_get_cpu_driver(struct cpuidle_device *dev); @@ -151,7 +150,10 @@ static inline void cpuidle_unregister_driver(struct cpuidle_driver *drv) { }  static inline int cpuidle_register_device(struct cpuidle_device *dev)  {return -ENODEV; }  static inline void cpuidle_unregister_device(struct cpuidle_device *dev) { } - +static inline int cpuidle_register(struct cpuidle_driver *drv, +				   const struct cpumask *const coupled_cpus) +{return -ENODEV; } +static inline void cpuidle_unregister(struct cpuidle_driver *drv) { }  static inline void cpuidle_pause_and_lock(void) { }  static inline void cpuidle_resume_and_unlock(void) { }  static inline void cpuidle_pause(void) { } @@ -159,11 +161,6 @@ static inline void cpuidle_resume(void) { }  static inline int cpuidle_enable_device(struct cpuidle_device *dev)  {return -ENODEV; }  static inline void cpuidle_disable_device(struct cpuidle_device *dev) { } -static inline int cpuidle_wrap_enter(struct cpuidle_device *dev, -				struct cpuidle_driver *drv, int index, -				int (*enter)(struct cpuidle_device *dev, -					struct cpuidle_driver *drv, int index)) -{ return -ENODEV; }  static inline int cpuidle_play_dead(void) {return -ENODEV; }  #endif  |