Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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);