xref: /openbmc/linux/drivers/cpuidle/cpuidle.h (revision 4f86d3a8)
14f86d3a8SLen Brown /*
24f86d3a8SLen Brown  * cpuidle.h - The internal header file
34f86d3a8SLen Brown  */
44f86d3a8SLen Brown 
54f86d3a8SLen Brown #ifndef __DRIVER_CPUIDLE_H
64f86d3a8SLen Brown #define __DRIVER_CPUIDLE_H
74f86d3a8SLen Brown 
84f86d3a8SLen Brown #include <linux/sysdev.h>
94f86d3a8SLen Brown 
104f86d3a8SLen Brown /* For internal use only */
114f86d3a8SLen Brown extern struct cpuidle_governor *cpuidle_curr_governor;
124f86d3a8SLen Brown extern struct cpuidle_driver *cpuidle_curr_driver;
134f86d3a8SLen Brown extern struct list_head cpuidle_governors;
144f86d3a8SLen Brown extern struct list_head cpuidle_detected_devices;
154f86d3a8SLen Brown extern struct mutex cpuidle_lock;
164f86d3a8SLen Brown extern spinlock_t cpuidle_driver_lock;
174f86d3a8SLen Brown 
184f86d3a8SLen Brown /* idle loop */
194f86d3a8SLen Brown extern void cpuidle_install_idle_handler(void);
204f86d3a8SLen Brown extern void cpuidle_uninstall_idle_handler(void);
214f86d3a8SLen Brown 
224f86d3a8SLen Brown /* governors */
234f86d3a8SLen Brown extern int cpuidle_switch_governor(struct cpuidle_governor *gov);
244f86d3a8SLen Brown 
254f86d3a8SLen Brown /* sysfs */
264f86d3a8SLen Brown extern int cpuidle_add_class_sysfs(struct sysdev_class *cls);
274f86d3a8SLen Brown extern void cpuidle_remove_class_sysfs(struct sysdev_class *cls);
284f86d3a8SLen Brown extern int cpuidle_add_state_sysfs(struct cpuidle_device *device);
294f86d3a8SLen Brown extern void cpuidle_remove_state_sysfs(struct cpuidle_device *device);
304f86d3a8SLen Brown extern int cpuidle_add_sysfs(struct sys_device *sysdev);
314f86d3a8SLen Brown extern void cpuidle_remove_sysfs(struct sys_device *sysdev);
324f86d3a8SLen Brown 
334f86d3a8SLen Brown #endif /* __DRIVER_CPUIDLE_H */
34