mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

DEVFREQ supports the default governors like performance, simple_ondemand and also allows the devfreq driver to add their own governor like tegra30-devfreq.c according to their requirement. In result, some sysfs attributes are useful or not useful. Prior to that the user can access all sysfs attributes regardless of the available attributes. So, clarify the access permission of sysfs attributes according to governor. When adding the devfreq governor, can specify the available attribute information by using DEVFREQ_GOV_ATTR_* constant variable. The user can read or write the sysfs attributes in accordance to the specified attributes. When adding the governor, can add the following attributes according to the governor feature. [Definition for speific sysfs attributes] - DEVFREQ_GOV_ATTR_POLLING_INTERVAL to update polling interval for timer. : /sys/class/devfreq/[devfreq dev name]/polling_interval - DEVFREQ_GOV_ATTR_TIMER to change the type of timer on either deferrable or dealyed timer. : /sys/class/devfreq/[devfreq dev name]/timer And all devfreq governors have to support the following common attributes. The common attributes are added to devfreq class by default. - governor - available_governors - available_frequencies - cur_freq - target_freq - min_freq - max_freq - trans_stat [Table of governor attribute flags for devfreq governors] ------------------------------------------------------------------------------ | simple | perfor | power | user | passive | tegra30 | ondemand | mance | save | space| | ------------------------------------------------------------------------------ governor | O | O | O | O | O | O available_governors | O | O | O | O | O | O available_frequencies | O | O | O | O | O | O cur_freq | O | O | O | O | O | O target_freq | O | O | O | O | O | O min_freq | O | O | O | O | O | O max_freq | O | O | O | O | O | O trans_stat | O | O | O | O | O | O -------------------------------------------------------- polling_interval | O | X | X | X | X | O timer | O | X | X | X | X | X ------------------------------------------------------------------------------ Reviewed-by: Dmitry Osipenko <digetx@gmail.com> Tested-by: Dmitry Osipenko <digetx@gmail.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
132 lines
4.7 KiB
Text
132 lines
4.7 KiB
Text
What: /sys/class/devfreq/.../
|
|
Date: September 2011
|
|
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
|
Description:
|
|
Provide a place in sysfs for the devfreq objects.
|
|
This allows accessing various devfreq specific variables.
|
|
The name of devfreq object denoted as ... is same as the
|
|
name of device using devfreq.
|
|
|
|
What: /sys/class/devfreq/.../name
|
|
Date: November 2019
|
|
Contact: Chanwoo Choi <cw00.choi@samsung.com>
|
|
Description:
|
|
The /sys/class/devfreq/.../name shows the name of device
|
|
of the corresponding devfreq object.
|
|
|
|
What: /sys/class/devfreq/.../governor
|
|
Date: September 2011
|
|
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
|
Description:
|
|
The /sys/class/devfreq/.../governor show or set the name of the
|
|
governor used by the corresponding devfreq object.
|
|
|
|
What: /sys/class/devfreq/.../cur_freq
|
|
Date: September 2011
|
|
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
|
Description:
|
|
The /sys/class/devfreq/.../cur_freq shows the current
|
|
frequency of the corresponding devfreq object. Same as
|
|
target_freq when get_cur_freq() is not implemented by
|
|
devfreq driver.
|
|
|
|
What: /sys/class/devfreq/.../target_freq
|
|
Date: September 2012
|
|
Contact: Rajagopal Venkat <rajagopal.venkat@linaro.org>
|
|
Description:
|
|
The /sys/class/devfreq/.../target_freq shows the next governor
|
|
predicted target frequency of the corresponding devfreq object.
|
|
|
|
What: /sys/class/devfreq/.../trans_stat
|
|
Date: October 2012
|
|
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
|
Description:
|
|
This ABI shows or clears the statistics of devfreq behavior
|
|
on a specific device. It shows the time spent in each state
|
|
and the number of transitions between states.
|
|
In order to activate this ABI, the devfreq target device
|
|
driver should provide the list of available frequencies
|
|
with its profile. If need to reset the statistics of devfreq
|
|
behavior on a specific device, enter 0(zero) to 'trans_stat'
|
|
as following:
|
|
echo 0 > /sys/class/devfreq/.../trans_stat
|
|
|
|
What: /sys/class/devfreq/.../available_frequencies
|
|
Date: October 2012
|
|
Contact: Nishanth Menon <nm@ti.com>
|
|
Description:
|
|
The /sys/class/devfreq/.../available_frequencies shows
|
|
the available frequencies of the corresponding devfreq object.
|
|
This is a snapshot of available frequencies and not limited
|
|
by the min/max frequency restrictions.
|
|
|
|
What: /sys/class/devfreq/.../available_governors
|
|
Date: October 2012
|
|
Contact: Nishanth Menon <nm@ti.com>
|
|
Description:
|
|
The /sys/class/devfreq/.../available_governors shows
|
|
currently available governors in the system.
|
|
|
|
What: /sys/class/devfreq/.../min_freq
|
|
Date: January 2013
|
|
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
|
Description:
|
|
The /sys/class/devfreq/.../min_freq shows and stores
|
|
the minimum frequency requested by users. It is 0 if
|
|
the user does not care. min_freq overrides the
|
|
frequency requested by governors.
|
|
|
|
What: /sys/class/devfreq/.../max_freq
|
|
Date: January 2013
|
|
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
|
Description:
|
|
The /sys/class/devfreq/.../max_freq shows and stores
|
|
the maximum frequency requested by users. It is 0 if
|
|
the user does not care. max_freq overrides the
|
|
frequency requested by governors and min_freq.
|
|
The max_freq overrides min_freq because max_freq may be
|
|
used to throttle devices to avoid overheating.
|
|
|
|
What: /sys/class/devfreq/.../polling_interval
|
|
Date: September 2011
|
|
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
|
Description:
|
|
The /sys/class/devfreq/.../polling_interval shows and sets
|
|
the requested polling interval of the corresponding devfreq
|
|
object. The values are represented in ms. If the value is
|
|
less than 1 jiffy, it is considered to be 0, which means
|
|
no polling. This value is meaningless if the governor is
|
|
not polling; thus. If the governor is not using
|
|
devfreq-provided central polling
|
|
(/sys/class/devfreq/.../central_polling is 0), this value
|
|
may be useless.
|
|
|
|
A list of governors that support the node:
|
|
- simple_ondmenad
|
|
- tegra_actmon
|
|
|
|
What: /sys/class/devfreq/.../userspace/set_freq
|
|
Date: September 2011
|
|
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
|
Description:
|
|
The /sys/class/devfreq/.../userspace/set_freq shows and
|
|
sets the requested frequency for the devfreq object if
|
|
userspace governor is in effect.
|
|
|
|
A list of governors that support the node:
|
|
- userspace
|
|
|
|
What: /sys/class/devfreq/.../timer
|
|
Date: July 2020
|
|
Contact: Chanwoo Choi <cw00.choi@samsung.com>
|
|
Description:
|
|
This ABI shows and stores the kind of work timer by users.
|
|
This work timer is used by devfreq workqueue in order to
|
|
monitor the device status such as utilization. The user
|
|
can change the work timer on runtime according to their demand
|
|
as following:
|
|
echo deferrable > /sys/class/devfreq/.../timer
|
|
echo delayed > /sys/class/devfreq/.../timer
|
|
|
|
A list of governors that support the node:
|
|
- simple_ondemand
|