

		Supporting multiple CPU idle levels in kernel

				cpuidle drivers




cpuidle driver hooks into the cpuidle infrastructure and does 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 actusl entry-exit into a CPU idle state.

cpuidle driver supports capability detection for a platform using the
init and exit routines. They will be called for each online CPU, with a
percpu cpuidle_driver object and driver should fill in cpuidle_states
inside cpuidle_driver depending on the CPU capability.

Driver can handle dynamic state changes (like battery<->AC), by calling
force_redetect interface.

It is possible to have more than one driver registered at the same time and
user can switch between drivers using /sysfs interface (when enabled).

Interfaces:
int cpuidle_register_driver(struct cpuidle_driver *drv);
void cpuidle_unregister_driver(struct cpuidle_driver *drv);
int cpuidle_force_redetect(struct cpuidle_device *dev);
