diff options
author | Viresh Kumar <viresh.kumar@linaro.org> | 2014-09-30 09:33:17 +0530 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-10-05 13:41:11 -0700 |
commit | c2125f7261b1c54b726a18825e091e1eb1d53bda (patch) | |
tree | e45a7e068ed15e6ee2a574cced4288b6fcee894b | |
parent | 9b117b107be45ede788bf6656766424f67b0dd0f (diff) | |
download | linux-stable-c2125f7261b1c54b726a18825e091e1eb1d53bda.tar.gz linux-stable-c2125f7261b1c54b726a18825e091e1eb1d53bda.tar.bz2 linux-stable-c2125f7261b1c54b726a18825e091e1eb1d53bda.zip |
cpufreq: update 'cpufreq_suspended' after stopping governors
commit b1b12babe3b72cfb08b875245e5a5d7c2747c772 upstream.
Commit 8e30444e1530 ("cpufreq: fix cpufreq suspend/resume for intel_pstate")
introduced a bug where the governors wouldn't be stopped anymore for
->target{_index}() drivers during suspend. This happens because
'cpufreq_suspended' is updated before stopping the governors during suspend
and due to this __cpufreq_governor() would return early due to this check:
/* Don't start any governor operations if we are entering suspend */
if (cpufreq_suspended)
return 0;
Fixes: 8e30444e1530 ("cpufreq: fix cpufreq suspend/resume for intel_pstate")
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/cpufreq/cpufreq.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index 1edeaad718df..21ab8bcd4d20 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -1666,10 +1666,8 @@ void cpufreq_suspend(void) if (!cpufreq_driver) return; - cpufreq_suspended = true; - if (!has_target()) - return; + goto suspend; pr_debug("%s: Suspending Governors\n", __func__); @@ -1682,6 +1680,9 @@ void cpufreq_suspend(void) pr_err("%s: Failed to suspend driver: %p\n", __func__, policy); } + +suspend: + cpufreq_suspended = true; } /** |