Messages in this thread | | | From | Chanwoo Choi <> | Subject | [PATCH v2 0/2] PM / devfreq: Add governor flags | Date | Mon, 13 Jul 2020 17:31:11 +0900 |
| |
Devfreq provides the multiple governors and sysfs interface for user. But, some sysfs attributes are useful or not useful. Prior to that the user can access all sysfs attributes regardless of availability.
So, clarify the access permission of sysfs attributes according to governor. Provide the governor flag to specify what is necessary or not. When adding the devfreq governor, governor can specify the available attributes with DEVFREQ_GOV_ATTR_ATTR_* defintion as following.
[Definition for sysfs attributes] - DEVFREQ_GOV_ATTR_GOVERNOR - DEVFREQ_GOV_ATTR_AVAIL_GOVERNORS - DEVFREQ_GOV_ATTR_AVAIL_FREQUENCIES - DEVFREQ_GOV_ATTR_CUR_FREQ - DEVFREQ_GOV_ATTR_TARGET_FREQ - DEVFREQ_GOV_ATTR_MIN_FREQ - DEVFREQ_GOV_ATTR_MAX_FREQ - DEVFREQ_GOV_ATTR_TRANS_STAT - DEVFREQ_GOV_ATTR_POLLING_INTERVAL - DEVFREQ_GOV_ATTR_TIMER
Also, the devfreq governor is able to have the specific flag as follows in order to implement the specific feature with DEVFREQ_GOV_FLA_*. For exmaple, the devfreq deivce using passive governor cannot change their own governor because passive governor requires the 'immutable' feature with DEVFREQ_GOV_FLAG_IMMUTABLE.
[Definition for governor flag] - DEVFREQ_GOV_FLAG_IMMUTABLE : If immutable flag is set, governor is never changeable to other governors. - DEVFREQ_GOV_FLAG_IRQ_DRIVEN : Devfreq core won't schedule polling work for this governor if value is set.
Changes from v1: - Rebase it on latest devfreq-next branch - Fix typo issue of tegra30-devfreq.c and test it with COMPILE_TEST
Chanwoo Choi (2): PM / devfreq: Clean up the devfreq instance name in sysfs attr PM / devfreq: Add governor flags to clarify the features
drivers/devfreq/devfreq.c | 186 +++++++++++++++++----- drivers/devfreq/governor.h | 44 ++++- drivers/devfreq/governor_passive.c | 3 +- drivers/devfreq/governor_performance.c | 1 + drivers/devfreq/governor_powersave.c | 1 + drivers/devfreq/governor_simpleondemand.c | 3 + drivers/devfreq/governor_userspace.c | 1 + drivers/devfreq/tegra30-devfreq.c | 6 +- 8 files changed, 192 insertions(+), 53 deletions(-)
-- 2.17.1
| |