Lines Matching defs:pstate

198  * @pstate:		Stores P state limits for this CPU
236 struct pstate_data pstate;
295 u64 (*get_val)(struct cpudata*, int pstate);
538 if (freq == cpu->pstate.turbo_freq)
539 return cpu->pstate.turbo_pstate;
541 if (freq == cpu->pstate.max_freq)
542 return cpu->pstate.max_pstate;
546 return freq / cpu->pstate.scaling;
548 return DIV_ROUND_CLOSEST(freq, cpu->pstate.scaling);
551 return DIV_ROUND_UP(freq, cpu->pstate.scaling);
572 int perf_ctl_max_phys = cpu->pstate.max_pstate_physical;
573 int perf_ctl_scaling = cpu->pstate.perf_ctl_scaling;
575 int scaling = cpu->pstate.scaling;
581 pr_debug("CPU%d: HWP_CAP guaranteed = %d\n", cpu->cpu, cpu->pstate.max_pstate);
582 pr_debug("CPU%d: HWP_CAP highest = %d\n", cpu->cpu, cpu->pstate.turbo_pstate);
590 cpu->pstate.turbo_freq = rounddown(cpu->pstate.turbo_pstate * scaling,
592 cpu->pstate.max_freq = rounddown(cpu->pstate.max_pstate * scaling,
596 cpu->pstate.max_pstate_physical = intel_pstate_freq_to_hwp(cpu, freq);
598 freq = cpu->pstate.min_pstate * perf_ctl_scaling;
599 cpu->pstate.min_freq = freq;
604 cpu->pstate.min_pstate = intel_pstate_freq_to_hwp(cpu, freq);
619 int turbo_pstate = cpu->pstate.turbo_pstate;
622 (cpu->pstate.min_pstate * 100 / turbo_pstate) : 0;
893 freq = ratio * cpu->pstate.scaling;
894 if (cpu->pstate.scaling != cpu->pstate.perf_ctl_scaling)
895 freq = rounddown(freq, cpu->pstate.perf_ctl_scaling);
1044 cpu->pstate.max_pstate_physical);
1050 cpu->cpu, cpu->capacity_perf, cpu->pstate.max_pstate_physical,
1062 cpu->capacity_perf = cpu->pstate.max_pstate_physical;
1192 cpu->pstate.max_pstate = HWP_GUARANTEED_PERF(cap);
1193 cpu->pstate.turbo_pstate = HWP_HIGHEST_PERF(cap);
1198 int scaling = cpu->pstate.scaling;
1202 cpu->pstate.max_freq = cpu->pstate.max_pstate * scaling;
1203 cpu->pstate.turbo_freq = cpu->pstate.turbo_pstate * scaling;
1204 if (scaling != cpu->pstate.perf_ctl_scaling) {
1205 int perf_ctl_scaling = cpu->pstate.perf_ctl_scaling;
1207 cpu->pstate.max_freq = rounddown(cpu->pstate.max_freq,
1209 cpu->pstate.turbo_freq = rounddown(cpu->pstate.turbo_freq,
1474 cpudata->pstate.max_freq : cpudata->pstate.turbo_freq;
1562 total = cpu->pstate.turbo_pstate - cpu->pstate.min_pstate + 1;
1563 no_turbo = cpu->pstate.max_pstate - cpu->pstate.min_pstate + 1;
1582 total = cpu->pstate.turbo_pstate - cpu->pstate.min_pstate + 1;
1632 int pct = cpu->pstate.max_pstate * 100 / cpu->pstate.turbo_pstate;
1664 freq = cpudata->pstate.turbo_freq;
2053 static u64 get_perf_ctl_val(int pstate)
2057 val = (u64)pstate << 8;
2089 static u64 atom_get_val(struct cpudata *cpudata, int pstate)
2091 u64 val = get_perf_ctl_val(pstate);
2096 int_tofp(pstate - cpudata->pstate.min_pstate),
2102 if (pstate > cpudata->pstate.max_pstate)
2148 int_tofp(cpudata->pstate.max_pstate -
2149 cpudata->pstate.min_pstate));
2252 static u64 core_get_val(struct cpudata *cpudata, int pstate)
2254 return get_perf_ctl_val(pstate);
2300 static void intel_pstate_set_pstate(struct cpudata *cpu, int pstate)
2302 trace_cpu_frequency(pstate * cpu->pstate.scaling, cpu->cpu);
2303 cpu->pstate.current_pstate = pstate;
2310 pstate_funcs.get_val(cpu, pstate));
2315 intel_pstate_set_pstate(cpu, cpu->pstate.min_pstate);
2322 cpu->pstate.max_pstate_physical = pstate_funcs.get_max_physical(cpu->cpu);
2323 cpu->pstate.min_pstate = pstate_funcs.get_min(cpu->cpu);
2324 cpu->pstate.perf_ctl_scaling = perf_ctl_scaling;
2330 cpu->pstate.scaling = pstate_funcs.get_cpu_scaling(cpu->cpu);
2333 cpu->pstate.scaling = perf_ctl_scaling;
2341 cpu->pstate.scaling = perf_ctl_scaling;
2342 cpu->pstate.max_pstate = pstate_funcs.get_max(cpu->cpu);
2343 cpu->pstate.turbo_pstate = pstate_funcs.get_turbo(cpu->cpu);
2346 if (cpu->pstate.scaling == perf_ctl_scaling) {
2347 cpu->pstate.min_freq = cpu->pstate.min_pstate * perf_ctl_scaling;
2348 cpu->pstate.max_freq = cpu->pstate.max_pstate * perf_ctl_scaling;
2349 cpu->pstate.turbo_freq = cpu->pstate.turbo_pstate * perf_ctl_scaling;
2528 return mul_ext_fp(cpu->pstate.max_pstate_physical,
2547 cpu->pstate.max_pstate : cpu->pstate.turbo_pstate;
2550 if (target < cpu->pstate.min_pstate)
2551 target = cpu->pstate.min_pstate;
2567 static int intel_pstate_prepare_request(struct cpudata *cpu, int pstate)
2569 int min_pstate = max(cpu->pstate.min_pstate, cpu->min_perf_ratio);
2572 return clamp_t(int, pstate, min_pstate, max_pstate);
2575 static void intel_pstate_update_pstate(struct cpudata *cpu, int pstate)
2577 if (pstate == cpu->pstate.current_pstate)
2580 cpu->pstate.current_pstate = pstate;
2581 wrmsrq(MSR_IA32_PERF_CTL, pstate_funcs.get_val(cpu, pstate));
2586 int from = cpu->pstate.current_pstate;
2592 trace_cpu_frequency(target_pstate * cpu->pstate.scaling, cpu->cpu);
2599 cpu->pstate.current_pstate,
2819 cpu->pstate.max_freq : cpu->pstate.turbo_freq;
2826 int perf_ctl_scaling = cpu->pstate.perf_ctl_scaling;
2842 if (hwp_active && cpu->pstate.scaling != perf_ctl_scaling) {
2859 int turbo_max = cpu->pstate.turbo_pstate;
2903 int pstate = max(cpu->pstate.min_pstate, cpu->max_perf_ratio);
2910 intel_pstate_set_pstate(cpu, pstate);
2940 cpu->pstate.max_pstate_physical > cpu->pstate.max_pstate &&
2942 policy->max > cpu->pstate.max_freq) {
2956 cpu->pstate.max_freq : cpu->pstate.turbo_freq;
2991 policy->cur = cpu->pstate.min_freq;
3050 policy->cpuinfo.min_freq = cpu->pstate.min_freq;
3052 cpu->pstate.max_freq : cpu->pstate.turbo_freq;
3137 cpu->pstate.current_pstate,
3184 int old_pstate = cpu->pstate.current_pstate;
3197 cpu->pstate.current_pstate = target_pstate;
3221 freqs.new = target_pstate * cpu->pstate.scaling;
3238 return target_pstate * cpu->pstate.scaling;
3248 int old_pstate = cpu->pstate.current_pstate;
3265 if (min_pstate < cpu->pstate.min_pstate)
3266 min_pstate = cpu->pstate.min_pstate;
3282 cpu->pstate.current_pstate = target_pstate;
3328 freq = DIV_ROUND_UP(cpu->pstate.turbo_freq * global.min_perf_pct, 100);
3337 freq = DIV_ROUND_UP(cpu->pstate.turbo_freq * global.max_perf_pct, 100);
3772 * The Intel pstate driver will be ignored if the platform