Commit b0ceed06 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge back earlier cpufreq fixes for v4.4.

parents 1ec21837 785ee278
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -1401,13 +1401,10 @@ static void cpufreq_remove_dev(struct device *dev, struct subsys_interface *sif)
	}

	cpumask_clear_cpu(cpu, policy->real_cpus);
	remove_cpu_dev_symlink(policy, cpu);

	if (cpumask_empty(policy->real_cpus)) {
	if (cpumask_empty(policy->real_cpus))
		cpufreq_policy_free(policy, true);
		return;
	}

	remove_cpu_dev_symlink(policy, cpu);
}

static void handle_update(struct work_struct *work)
+3 −1
Original line number Diff line number Diff line
@@ -1108,7 +1108,8 @@ static int intel_pstate_set_policy(struct cpufreq_policy *policy)
	limits = &powersave_limits;
	limits->min_policy_pct = (policy->min * 100) / policy->cpuinfo.max_freq;
	limits->min_policy_pct = clamp_t(int, limits->min_policy_pct, 0 , 100);
	limits->max_policy_pct = (policy->max * 100) / policy->cpuinfo.max_freq;
	limits->max_policy_pct = DIV_ROUND_UP(policy->max * 100,
					      policy->cpuinfo.max_freq);
	limits->max_policy_pct = clamp_t(int, limits->max_policy_pct, 0 , 100);

	/* Normalize user input to [min_policy_pct, max_policy_pct] */
@@ -1120,6 +1121,7 @@ static int intel_pstate_set_policy(struct cpufreq_policy *policy)
				   limits->max_sysfs_pct);
	limits->max_perf_pct = max(limits->min_policy_pct,
				   limits->max_perf_pct);
	limits->max_perf = round_up(limits->max_perf, 8);

	/* Make sure min_perf_pct <= max_perf_pct */
	limits->min_perf_pct = min(limits->max_perf_pct, limits->min_perf_pct);