1234567891011121314151617181920212223242526272829303132333435363738 |
- Supporting multiple CPU idle levels in kernel
- cpuidle drivers
- cpuidle driver hooks into the cpuidle infrastructure and handles the
- architecture/platform dependent part of CPU idle states. Driver
- provides the platform idle state detection capability and also
- has mechanisms in place to support actual entry-exit into CPU idle states.
- cpuidle driver initializes the cpuidle_device structure for each CPU device
- and registers with cpuidle using cpuidle_register_device.
- If all the idle states are the same, the wrapper function cpuidle_register
- could be used instead.
- It can also support the dynamic changes (like battery <-> AC), by using
- cpuidle_pause_and_lock, cpuidle_disable_device and cpuidle_enable_device,
- cpuidle_resume_and_unlock.
- Interfaces:
- extern int cpuidle_register(struct cpuidle_driver *drv,
- const struct cpumask *const coupled_cpus);
- extern int cpuidle_unregister(struct cpuidle_driver *drv);
- extern int cpuidle_register_driver(struct cpuidle_driver *drv);
- 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 void cpuidle_pause_and_lock(void);
- extern void cpuidle_resume_and_unlock(void);
- extern int cpuidle_enable_device(struct cpuidle_device *dev);
- extern void cpuidle_disable_device(struct cpuidle_device *dev);
|