aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq
diff options
context:
space:
mode:
authorViresh Kumar <viresh.kumar@linaro.org>2016-02-22 06:06:44 -0500
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2016-03-09 08:41:12 -0500
commit242aa883a64d8c54cfeee47f3603b21bc705e081 (patch)
tree73aa1224af144ab32edafa14089d870863c46cc7 /drivers/cpufreq
parenta1317e091ab1386812ee8ab4e3bbd89f2811bc74 (diff)
cpufreq: Remove 'policy->governor_enabled'
The entire sequence of events (like INIT/START or STOP/EXIT) for which cpufreq_governor() is called, is guaranteed to be protected by policy->rwsem now. The additional checks that were added earlier (as we were forced to drop policy->rwsem before calling cpufreq_governor() for EXIT event), aren't required anymore. Over that, they weren't sufficient really. They just take care of START/STOP events, but not INIT/EXIT and the state machine was never maintained properly by them. Kill the unnecessary checks and policy->governor_enabled field. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/cpufreq')
-rw-r--r--drivers/cpufreq/cpufreq.c17
1 files changed, 0 insertions, 17 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index b3d05a905034..dd568aaf2728 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -2010,17 +2010,6 @@ static int cpufreq_governor(struct cpufreq_policy *policy, unsigned int event)
2010 2010
2011 pr_debug("%s: for CPU %u, event %u\n", __func__, policy->cpu, event); 2011 pr_debug("%s: for CPU %u, event %u\n", __func__, policy->cpu, event);
2012 2012
2013 if ((policy->governor_enabled && event == CPUFREQ_GOV_START)
2014 || (!policy->governor_enabled
2015 && (event == CPUFREQ_GOV_LIMITS || event == CPUFREQ_GOV_STOP))) {
2016 return -EBUSY;
2017 }
2018
2019 if (event == CPUFREQ_GOV_STOP)
2020 policy->governor_enabled = false;
2021 else if (event == CPUFREQ_GOV_START)
2022 policy->governor_enabled = true;
2023
2024 ret = policy->governor->governor(policy, event); 2013 ret = policy->governor->governor(policy, event);
2025 2014
2026 if (!ret) { 2015 if (!ret) {
@@ -2028,12 +2017,6 @@ static int cpufreq_governor(struct cpufreq_policy *policy, unsigned int event)
2028 policy->governor->initialized++; 2017 policy->governor->initialized++;
2029 else if (event == CPUFREQ_GOV_POLICY_EXIT) 2018 else if (event == CPUFREQ_GOV_POLICY_EXIT)
2030 policy->governor->initialized--; 2019 policy->governor->initialized--;
2031 } else {
2032 /* Restore original values */
2033 if (event == CPUFREQ_GOV_STOP)
2034 policy->governor_enabled = true;
2035 else if (event == CPUFREQ_GOV_START)
2036 policy->governor_enabled = false;
2037 } 2020 }
2038 2021
2039 if (((event == CPUFREQ_GOV_POLICY_INIT) && ret) || 2022 if (((event == CPUFREQ_GOV_POLICY_INIT) && ret) ||