Merge tag 'v5.6-rc3' into sched/core, to pick up fixes and dependent patches
Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
@@ -172,7 +172,7 @@ struct vid_data {
|
||||
/**
|
||||
* struct global_params - Global parameters, mostly tunable via sysfs.
|
||||
* @no_turbo: Whether or not to use turbo P-states.
|
||||
* @turbo_disabled: Whethet or not turbo P-states are available at all,
|
||||
* @turbo_disabled: Whether or not turbo P-states are available at all,
|
||||
* based on the MSR_IA32_MISC_ENABLE value and whether or
|
||||
* not the maximum reported turbo P-state is different from
|
||||
* the maximum reported non-turbo one.
|
||||
@@ -2037,8 +2037,9 @@ static int intel_pstate_get_max_freq(struct cpudata *cpu)
|
||||
cpu->pstate.max_freq : cpu->pstate.turbo_freq;
|
||||
}
|
||||
|
||||
static void intel_pstate_update_perf_limits(struct cpufreq_policy *policy,
|
||||
struct cpudata *cpu)
|
||||
static void intel_pstate_update_perf_limits(struct cpudata *cpu,
|
||||
unsigned int policy_min,
|
||||
unsigned int policy_max)
|
||||
{
|
||||
int max_freq = intel_pstate_get_max_freq(cpu);
|
||||
int32_t max_policy_perf, min_policy_perf;
|
||||
@@ -2057,18 +2058,17 @@ static void intel_pstate_update_perf_limits(struct cpufreq_policy *policy,
|
||||
turbo_max = cpu->pstate.turbo_pstate;
|
||||
}
|
||||
|
||||
max_policy_perf = max_state * policy->max / max_freq;
|
||||
if (policy->max == policy->min) {
|
||||
max_policy_perf = max_state * policy_max / max_freq;
|
||||
if (policy_max == policy_min) {
|
||||
min_policy_perf = max_policy_perf;
|
||||
} else {
|
||||
min_policy_perf = max_state * policy->min / max_freq;
|
||||
min_policy_perf = max_state * policy_min / max_freq;
|
||||
min_policy_perf = clamp_t(int32_t, min_policy_perf,
|
||||
0, max_policy_perf);
|
||||
}
|
||||
|
||||
pr_debug("cpu:%d max_state %d min_policy_perf:%d max_policy_perf:%d\n",
|
||||
policy->cpu, max_state,
|
||||
min_policy_perf, max_policy_perf);
|
||||
cpu->cpu, max_state, min_policy_perf, max_policy_perf);
|
||||
|
||||
/* Normalize user input to [min_perf, max_perf] */
|
||||
if (per_cpu_limits) {
|
||||
@@ -2082,7 +2082,7 @@ static void intel_pstate_update_perf_limits(struct cpufreq_policy *policy,
|
||||
global_min = DIV_ROUND_UP(turbo_max * global.min_perf_pct, 100);
|
||||
global_min = clamp_t(int32_t, global_min, 0, global_max);
|
||||
|
||||
pr_debug("cpu:%d global_min:%d global_max:%d\n", policy->cpu,
|
||||
pr_debug("cpu:%d global_min:%d global_max:%d\n", cpu->cpu,
|
||||
global_min, global_max);
|
||||
|
||||
cpu->min_perf_ratio = max(min_policy_perf, global_min);
|
||||
@@ -2095,7 +2095,7 @@ static void intel_pstate_update_perf_limits(struct cpufreq_policy *policy,
|
||||
cpu->max_perf_ratio);
|
||||
|
||||
}
|
||||
pr_debug("cpu:%d max_perf_ratio:%d min_perf_ratio:%d\n", policy->cpu,
|
||||
pr_debug("cpu:%d max_perf_ratio:%d min_perf_ratio:%d\n", cpu->cpu,
|
||||
cpu->max_perf_ratio,
|
||||
cpu->min_perf_ratio);
|
||||
}
|
||||
@@ -2115,7 +2115,7 @@ static int intel_pstate_set_policy(struct cpufreq_policy *policy)
|
||||
|
||||
mutex_lock(&intel_pstate_limits_lock);
|
||||
|
||||
intel_pstate_update_perf_limits(policy, cpu);
|
||||
intel_pstate_update_perf_limits(cpu, policy->min, policy->max);
|
||||
|
||||
if (cpu->policy == CPUFREQ_POLICY_PERFORMANCE) {
|
||||
/*
|
||||
@@ -2144,8 +2144,8 @@ static int intel_pstate_set_policy(struct cpufreq_policy *policy)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void intel_pstate_adjust_policy_max(struct cpufreq_policy *policy,
|
||||
struct cpudata *cpu)
|
||||
static void intel_pstate_adjust_policy_max(struct cpudata *cpu,
|
||||
struct cpufreq_policy_data *policy)
|
||||
{
|
||||
if (!hwp_active &&
|
||||
cpu->pstate.max_pstate_physical > cpu->pstate.max_pstate &&
|
||||
@@ -2156,7 +2156,7 @@ static void intel_pstate_adjust_policy_max(struct cpufreq_policy *policy,
|
||||
}
|
||||
}
|
||||
|
||||
static int intel_pstate_verify_policy(struct cpufreq_policy *policy)
|
||||
static int intel_pstate_verify_policy(struct cpufreq_policy_data *policy)
|
||||
{
|
||||
struct cpudata *cpu = all_cpu_data[policy->cpu];
|
||||
|
||||
@@ -2164,11 +2164,7 @@ static int intel_pstate_verify_policy(struct cpufreq_policy *policy)
|
||||
cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
|
||||
intel_pstate_get_max_freq(cpu));
|
||||
|
||||
if (policy->policy != CPUFREQ_POLICY_POWERSAVE &&
|
||||
policy->policy != CPUFREQ_POLICY_PERFORMANCE)
|
||||
return -EINVAL;
|
||||
|
||||
intel_pstate_adjust_policy_max(policy, cpu);
|
||||
intel_pstate_adjust_policy_max(cpu, policy);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -2269,7 +2265,7 @@ static struct cpufreq_driver intel_pstate = {
|
||||
.name = "intel_pstate",
|
||||
};
|
||||
|
||||
static int intel_cpufreq_verify_policy(struct cpufreq_policy *policy)
|
||||
static int intel_cpufreq_verify_policy(struct cpufreq_policy_data *policy)
|
||||
{
|
||||
struct cpudata *cpu = all_cpu_data[policy->cpu];
|
||||
|
||||
@@ -2277,9 +2273,9 @@ static int intel_cpufreq_verify_policy(struct cpufreq_policy *policy)
|
||||
cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
|
||||
intel_pstate_get_max_freq(cpu));
|
||||
|
||||
intel_pstate_adjust_policy_max(policy, cpu);
|
||||
intel_pstate_adjust_policy_max(cpu, policy);
|
||||
|
||||
intel_pstate_update_perf_limits(policy, cpu);
|
||||
intel_pstate_update_perf_limits(cpu, policy->min, policy->max);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user