ce26c5bb95
Four cpufreq-like governors are provided as examples. powersave: use the lowest frequency possible. The user (device) should set the polling_ms as 0 because polling is useless for this governor. performance: use the highest freqeuncy possible. The user (device) should set the polling_ms as 0 because polling is useless for this governor. userspace: use the user specified frequency stored at devfreq.user_set_freq. With sysfs support in the following patch, a user may set the value with the sysfs interface. simple_ondemand: simplified version of cpufreq's ondemand governor. When a user updates OPP entries (enable/disable/add), OPP framework automatically notifies devfreq to update operating frequency accordingly. Thus, devfreq users (device drivers) do not need to update devfreq manually with OPP entry updates or set polling_ms for powersave , performance, userspace, or any other "static" governors. Note that these are given only as basic examples for governors and any devices with devfreq may implement their own governors with the drivers and use them. Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Reviewed-by: Mike Turquette <mturquette@ti.com> Acked-by: Kevin Hilman <khilman@ti.com> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
75 lines
2.8 KiB
Text
75 lines
2.8 KiB
Text
config ARCH_HAS_DEVFREQ
|
|
bool
|
|
depends on ARCH_HAS_OPP
|
|
help
|
|
Denotes that the architecture supports DEVFREQ. If the architecture
|
|
supports multiple OPP entries per device and the frequency of the
|
|
devices with OPPs may be altered dynamically, the architecture
|
|
supports DEVFREQ.
|
|
|
|
menuconfig PM_DEVFREQ
|
|
bool "Generic Dynamic Voltage and Frequency Scaling (DVFS) support"
|
|
depends on PM_OPP && ARCH_HAS_DEVFREQ
|
|
help
|
|
With OPP support, a device may have a list of frequencies and
|
|
voltages available. DEVFREQ, a generic DVFS framework can be
|
|
registered for a device with OPP support in order to let the
|
|
governor provided to DEVFREQ choose an operating frequency
|
|
based on the OPP's list and the policy given with DEVFREQ.
|
|
|
|
Each device may have its own governor and policy. DEVFREQ can
|
|
reevaluate the device state periodically and/or based on the
|
|
OPP list changes (each frequency/voltage pair in OPP may be
|
|
disabled or enabled).
|
|
|
|
Like some CPUs with CPUFREQ, a device may have multiple clocks.
|
|
However, because the clock frequencies of a single device are
|
|
determined by the single device's state, an instance of DEVFREQ
|
|
is attached to a single device and returns a "representative"
|
|
clock frequency from the OPP of the device, which is also attached
|
|
to a device by 1-to-1. The device registering DEVFREQ takes the
|
|
responsiblity to "interpret" the frequency listed in OPP and
|
|
to set its every clock accordingly with the "target" callback
|
|
given to DEVFREQ.
|
|
|
|
if PM_DEVFREQ
|
|
|
|
comment "DEVFREQ Governors"
|
|
|
|
config DEVFREQ_GOV_SIMPLE_ONDEMAND
|
|
bool "Simple Ondemand"
|
|
help
|
|
Chooses frequency based on the recent load on the device. Works
|
|
similar as ONDEMAND governor of CPUFREQ does. A device with
|
|
Simple-Ondemand should be able to provide busy/total counter
|
|
values that imply the usage rate. A device may provide tuned
|
|
values to the governor with data field at devfreq_add_device().
|
|
|
|
config DEVFREQ_GOV_PERFORMANCE
|
|
bool "Performance"
|
|
help
|
|
Sets the frequency at the maximum available frequency.
|
|
This governor always returns UINT_MAX as frequency so that
|
|
the DEVFREQ framework returns the highest frequency available
|
|
at any time.
|
|
|
|
config DEVFREQ_GOV_POWERSAVE
|
|
bool "Powersave"
|
|
help
|
|
Sets the frequency at the minimum available frequency.
|
|
This governor always returns 0 as frequency so that
|
|
the DEVFREQ framework returns the lowest frequency available
|
|
at any time.
|
|
|
|
config DEVFREQ_GOV_USERSPACE
|
|
bool "Userspace"
|
|
help
|
|
Sets the frequency at the user specified one.
|
|
This governor returns the user configured frequency if there
|
|
has been an input to /sys/devices/.../power/devfreq_set_freq.
|
|
Otherwise, the governor does not change the frequnecy
|
|
given at the initialization.
|
|
|
|
comment "DEVFREQ Drivers"
|
|
|
|
endif # PM_DEVFREQ
|