linux/drivers/cpufreq
Srinivas Pandruvada eea033d075 cpufreq: intel_pstate: Show different max frequency with turbo 3 and HWP
On HWP platforms with Turbo 3.0, the HWP capability max ratio shows the
maximum ratio of that core, which can be different than other cores. If
we show the correct maximum frequency in cpufreq sysfs via
cpuinfo_max_freq and scaling_max_freq then, user can know which cores
can run faster for pinning some high priority tasks.

Currently the max turbo frequency is shown as max frequency, which is
the max of all cores, even if some cores can't reach that frequency
even for single threaded workload.

But it is possible that max ratio in HWP capabilities is set as 0xFF or
some high invalid value (E.g. One KBL NUC). Since the actual performance
can never exceed 1 core turbo frequency from MSR TURBO_RATIO_LIMIT, we
use this as a bound check.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2018-07-19 12:53:03 +02:00
..
acpi-cpufreq.c Additional power management updates for 4.18-rc1 2018-06-13 07:24:18 -07:00
amd_freq_sensitivity.c cpufreq: AMD: Ignore the check for ProcFeedback in ST/CZ 2018-02-07 11:26:37 +01:00
arm_big_little_dt.c cpufreq: arm_big_little: make cpufreq_arm_bL_ops structures const 2017-11-08 23:22:20 +01:00
arm_big_little.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
arm_big_little.h cpufreq: arm_big_little: make function arguments and structure pointer const 2017-11-08 23:22:19 +01:00
armada-37xx-cpufreq.c cpufreq: armada-37xx: Add AVS support 2018-07-18 10:10:25 +02:00
bmips-cpufreq.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
brcmstb-avs-cpufreq.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
cppc_cpufreq.c cpufreq / CPPC: Add cpuinfo_cur_freq support for CPPC 2018-07-18 10:13:16 +02:00
cpufreq_conservative.c cpufreq: governor: Drop min_sampling_rate 2017-07-22 02:25:20 +02:00
cpufreq_governor_attr_set.c cpufreq: governor: Move abstract gov_attr_set code to seperate file 2016-04-02 01:09:01 +02:00
cpufreq_governor.c cpufreq: governors: Fix long idle detection logic in load calculation 2018-06-08 11:40:44 +02:00
cpufreq_governor.h cpufreq: Replace "max_transition_latency" with "dynamic_switching" 2017-07-26 00:15:45 +02:00
cpufreq_ondemand.c cpufreq: governor: Drop min_sampling_rate 2017-07-22 02:25:20 +02:00
cpufreq_ondemand.h cpufreq: ondemand: Don't keep a copy of freq_table pointer 2016-06-09 00:58:06 +02:00
cpufreq_performance.c cpufreq: governor: Get rid of governor events 2016-06-02 23:24:15 +02:00
cpufreq_powersave.c cpufreq: governor: Get rid of governor events 2016-06-02 23:24:15 +02:00
cpufreq_stats.c cpufreq: stats: Change return type of cpufreq_stats_update() as void 2018-01-05 13:22:46 +01:00
cpufreq_userspace.c cpufreq: governor: Get rid of governor events 2016-06-02 23:24:15 +02:00
cpufreq-dt-platdev.c cpufreq: Add Kryo CPU scaling driver 2018-05-30 12:53:11 +02:00
cpufreq-dt.c cpufreq: dt: Allow platform specific suspend/resume callbacks 2018-05-10 11:43:59 +02:00
cpufreq-dt.h cpufreq: dt: Allow platform specific suspend/resume callbacks 2018-05-10 11:43:59 +02:00
cpufreq-nforce2.c cpufreq: Add CPUFREQ_NO_AUTO_DYNAMIC_SWITCHING cpufreq driver flag 2017-07-26 00:15:46 +02:00
cpufreq.c cpufreq: Use static SRCU initializer 2018-05-30 11:16:59 +02:00
davinci-cpufreq.c ARM: davinci: da850: fix da850_set_pll0rate() 2017-01-02 15:02:51 +05:30
e_powersaver.c cpufreq: e_powersaver: Don't validate the frequency table twice 2018-03-20 12:07:52 +01:00
elanfreq.c cpufreq: elanfreq: Don't validate the frequency table twice 2018-03-20 12:07:52 +01:00
exynos5440-cpufreq.c cpufreq: Add and use cpufreq_for_each_{valid_,}entry_idx() 2018-02-08 10:21:39 +01:00
freq_table.c cpufreq: Drop cpufreq_table_validate_and_show() 2018-04-10 08:40:45 +02:00
gx-suspmod.c cpufreq: Add CPUFREQ_NO_AUTO_DYNAMIC_SWITCHING cpufreq driver flag 2017-07-26 00:15:46 +02:00
highbank-cpufreq.c Merge branch 'mailbox-for-linus' of git://git.linaro.org/landing-teams/working/fujitsu/integration 2014-10-21 11:21:19 -07:00
ia64-acpi-cpufreq.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
imx6q-cpufreq.c cpufreq: imx6q/thermal: imx: register cooling device depending on OF 2018-07-02 11:26:36 +02:00
intel_pstate.c cpufreq: intel_pstate: Show different max frequency with turbo 3 and HWP 2018-07-19 12:53:03 +02:00
Kconfig cpufreq: remove at32ap-cpufreq 2018-02-07 11:44:23 +01:00
Kconfig.arm cpufreq: kryo: allow building as a loadable module 2018-06-06 08:29:29 +02:00
Kconfig.powerpc cpufreq: qoriq: rename the driver 2015-03-18 22:35:16 +01:00
Kconfig.x86 sched/x86: Change CONFIG_SCHED_ITMT to CONFIG_SCHED_MC_PRIO 2016-11-30 08:27:08 +01:00
kirkwood-cpufreq.c cpufreq: kirkwood-cpufreq:- Handle return value of clk_prepare_enable() 2017-05-30 00:09:41 +02:00
longhaul.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
longhaul.h
longrun.c cpufreq: Don't set transition_latency for setpolicy drivers 2017-07-26 00:15:43 +02:00
loongson1-cpufreq.c CPUFREQ: Loongson1: Replace goto out with return in ls1x_cpufreq_probe() 2016-05-13 14:02:08 +02:00
loongson2_cpufreq.c cpufreq: Loongson2: constify platform_device_id 2017-08-18 01:44:21 +02:00
Makefile cpufreq: Add Kryo CPU scaling driver 2018-05-30 12:53:11 +02:00
maple-cpufreq.c cpufreq: Use consistent prefixing via pr_fmt 2016-04-09 01:35:18 +02:00
mediatek-cpufreq.c cpufreq: mediatek: Don't validate the frequency table twice 2018-03-20 12:07:52 +01:00
mvebu-cpufreq.c cpufreq: mvebu: Free opp if registering failed 2017-12-16 02:29:43 +01:00
omap-cpufreq.c PM / OPP: Update OPP users to put reference 2017-01-30 09:22:21 +01:00
p4-clockmod.c cpufreq: p4-clockmod: Don't validate the frequency table twice 2018-03-20 12:07:52 +01:00
pasemi-cpufreq.c cpufreq: Add and use cpufreq_for_each_{valid_,}entry_idx() 2018-02-08 10:21:39 +01:00
pcc-cpufreq.c cpufreq: pcc-cpufreq: Disable dynamic scaling on many-CPU systems 2018-07-18 10:15:07 +02:00
pmac32-cpufreq.c cpufreq: Add CPUFREQ_NO_AUTO_DYNAMIC_SWITCHING cpufreq driver flag 2017-07-26 00:15:46 +02:00
pmac64-cpufreq.c cpufreq: Convert to using %pOF instead of full_name 2017-08-25 01:20:46 +02:00
powernow-k6.c cpufreq: powernow: Don't validate the frequency table twice 2018-03-20 12:07:52 +01:00
powernow-k7.c cpufreq: powernow: Don't validate the frequency table twice 2018-03-20 12:07:52 +01:00
powernow-k7.h
powernow-k8.c cpufreq: powernow: Don't validate the frequency table twice 2018-03-20 12:07:52 +01:00
powernow-k8.h cpufreq: powernow-k8: Suppress checkpatch warnings 2014-05-17 01:27:01 +02:00
powernv-cpufreq.c cpufreq: powernv: Fix hardlockup due to synchronous smp_call in timer interrupt 2018-04-27 16:16:10 +10:00
ppc_cbe_cpufreq_pervasive.c
ppc_cbe_cpufreq_pmi.c cpufreq: Remove CPUFREQ_START notifier event 2017-02-04 00:05:30 +01:00
ppc_cbe_cpufreq.c cpufreq: ppc_cbe: Don't validate the frequency table twice 2018-03-20 12:07:52 +01:00
ppc_cbe_cpufreq.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pxa2xx-cpufreq.c cpufreq: pxa: Don't validate the frequency table twice 2018-03-20 12:07:52 +01:00
pxa3xx-cpufreq.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
qcom-cpufreq-kryo.c cpufreq: qcom-kryo: Silently error out on EPROBE_DEFER 2018-07-18 10:14:38 +02:00
qoriq-cpufreq.c cpufreq: qoirq: Don't validate the frequency table twice 2018-03-20 12:07:52 +01:00
s3c24xx-cpufreq-debugfs.c cpufreq: Use consistent prefixing via pr_fmt 2016-04-09 01:35:18 +02:00
s3c24xx-cpufreq.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
s3c64xx-cpufreq.c cpufreq: s3c64xx: remove incorrect __init annotation 2016-12-21 02:54:18 +01:00
s3c2410-cpufreq.c cpufreq: s3c24xx: Remove some dead code 2014-07-19 04:24:59 +09:00
s3c2412-cpufreq.c cpufreq: Use consistent prefixing via pr_fmt 2016-04-09 01:35:18 +02:00
s3c2416-cpufreq.c cpufreq: s3c2416: double free on driver init error path 2017-02-09 01:22:45 +01:00
s3c2440-cpufreq.c cpufreq: s3c2440: fix spelling mistake: "divsiors" -> "divisors" 2018-05-10 11:50:42 +02:00
s5pv210-cpufreq.c cpufreq: s5pv210: add missing of_node_put() 2017-07-26 22:54:01 +02:00
sa1100-cpufreq.c cpufreq: Add CPUFREQ_NO_AUTO_DYNAMIC_SWITCHING cpufreq driver flag 2017-07-26 00:15:46 +02:00
sa1110-cpufreq.c cpufreq: Add CPUFREQ_NO_AUTO_DYNAMIC_SWITCHING cpufreq driver flag 2017-07-26 00:15:46 +02:00
sc520_freq.c cpufreq: sc520: Don't validate the frequency table twice 2018-03-20 12:07:52 +01:00
scmi-cpufreq.c firmware: arm_scmi: rename get_transition_latency and add_opps_to_device 2018-05-10 10:49:40 +01:00
scpi-cpufreq.c cpufreq: scpi: Don't validate the frequency table twice 2018-03-20 12:07:52 +01:00
sfi-cpufreq.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
sh-cpufreq.c cpufreq: sh: Don't validate the frequency table twice 2018-03-20 12:07:52 +01:00
sparc-us2e-cpufreq.c cpufreq: sparc: Don't validate the frequency table twice 2018-03-20 12:07:52 +01:00
sparc-us3-cpufreq.c cpufreq: sparc: Don't validate the frequency table twice 2018-03-20 12:07:52 +01:00
spear-cpufreq.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
speedstep-centrino.c cpufreq: speedstep: Don't validate the frequency table twice 2018-03-20 12:07:52 +01:00
speedstep-ich.c cpufreq: speedstep: Don't validate the frequency table twice 2018-03-20 12:07:52 +01:00
speedstep-lib.c cpufreq: speedstep: fix speedstep_detect_processor()'s return type 2018-05-10 11:46:00 +02:00
speedstep-lib.h
speedstep-smi.c cpufreq: speedstep: Don't validate the frequency table twice 2018-03-20 12:07:52 +01:00
sti-cpufreq.c cpufreq: Convert to using %pOF instead of full_name 2017-08-25 01:20:46 +02:00
tango-cpufreq.c cpufreq: dt: Don't use generic platdev driver for tango 2017-07-22 02:20:59 +02:00
tegra20-cpufreq.c cpufreq: tegra20: Wrap cpufreq into platform driver 2018-05-21 13:44:24 +02:00
tegra124-cpufreq.c cpufreq: tegra124: No need of setting platform-data 2016-04-09 01:12:09 +02:00
tegra186-cpufreq.c cpufreq: tegra186: Don't validate the frequency table twice 2018-03-20 12:07:53 +01:00
ti-cpufreq.c cpufreq: ti-cpufreq: Use devres managed API in probe() 2018-06-06 08:34:31 +02:00
unicore2-cpufreq.c cpufreq: Add CPUFREQ_NO_AUTO_DYNAMIC_SWITCHING cpufreq driver flag 2017-07-26 00:15:46 +02:00
vexpress-spc-cpufreq.c cpufreq: arm_big_little: make cpufreq_arm_bL_ops structures const 2017-11-08 23:22:20 +01:00