diff options
author | Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> | 2008-02-14 00:16:13 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2008-02-14 00:16:13 -0500 |
commit | fe8e288a63f2f3c51c288500282d0eb5cd26a534 (patch) | |
tree | f2d0178448df4367ce3692e4b0a4ebb3f7dcbd4e /Documentation/cpuidle/driver.txt | |
parent | 4fcb2fcd4d0678b8ae103d257dcb28074cbfc7fa (diff) | |
download | lwn-fe8e288a63f2f3c51c288500282d0eb5cd26a534.tar.gz lwn-fe8e288a63f2f3c51c288500282d0eb5cd26a534.zip |
cpuidle: Add Documentation
Documentation for cpuidle infrastructure. (resend)
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Reviewed-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'Documentation/cpuidle/driver.txt')
-rw-r--r-- | Documentation/cpuidle/driver.txt | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Documentation/cpuidle/driver.txt b/Documentation/cpuidle/driver.txt new file mode 100644 index 000000000000..7a9e09ece931 --- /dev/null +++ b/Documentation/cpuidle/driver.txt @@ -0,0 +1,31 @@ + + + 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. + +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_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); |