From cd2743bb4905f0b9d11c13eee3c763249aada01c Mon Sep 17 00:00:00 2001 From: Naveen Ramaraj <nramaraj@codeaurora.org> Date: Fri, 10 Oct 2014 17:46:19 -0700 Subject: [PATCH] cpufreq: Always allow update of user policy In the cases where the system boots up in a constraint with policy min and max lower than cpuinfo min/max, and user tries to set a higher user policy min, the value would be overridden during the verifying the limits. Once user initiates the sysfs write the previous user policy is maintained in policy min and max thus changing the limits for verification of the current policy. Once the verification is completed restore the current user policy min/max with the updated values if any. This would take care of cases uwhere user policy min/max input is higher/lesser than the current min and max. Bug: 17889870 Change-Id: I5ad92ba05162cb5c32c3ba3fdae21d2e505493d3 Signed-off-by: Taniya Das <tdas@codeaurora.org> Signed-off-by: Naveen Ramaraj <nramaraj@codeaurora.org> --- drivers/cpufreq/cpufreq.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index 46056859155a..ef3ba27fabbb 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -431,6 +431,9 @@ static ssize_t store_##file_name \ if (ret) \ return -EINVAL; \ \ + new_policy.min = new_policy.user_policy.min; \ + new_policy.max = new_policy.user_policy.max; \ + \ ret = sscanf(buf, "%u", &new_policy.object); \ if (ret != 1) \ return -EINVAL; \ @@ -439,7 +442,9 @@ static ssize_t store_##file_name \ if (ret) \ pr_err("cpufreq: Frequency verification failed\n"); \ \ - policy->user_policy.object = new_policy.object; \ + policy->user_policy.min = new_policy.min; \ + policy->user_policy.max = new_policy.max; \ + \ ret = __cpufreq_set_policy(policy, &new_policy); \ \ return ret ? ret : count; \ -- GitLab