linux/drivers/cpufreq
Srinivas Pandruvada 92a3e426ec cpufreq: intel_pstate: Also use CPPC nominal_perf for base_frequency
The ACPI specification states that if the "Guaranteed Performance
Register" is not implemented, the OSPM assumes guaranteed performance
to always be equal to nominal performance.

So for invalid or unimplemented guaranteed performance register, use
nominal performance as guaranteed performance.

This change will fall back to nominal_perf when guranteed_perf is
invalid.  If nominal_perf is also invalid or not present, fall back
to the existing implementation, which is to read from HWP Capabilities
MSR.

Fixes: 86d333a8cc ("cpufreq: intel_pstate: Add base_frequency attribute")
Suggested-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: 4.20+ <stable@vger.kernel.org> # 4.20+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2019-03-25 23:57:21 +01:00
..
acpi-cpufreq.c cpufreq: acpi-cpufreq: Report if CPU doesn't support boost technologies 2019-02-20 13:16:06 +01:00
amd_freq_sensitivity.c cpufreq: Add Hygon Dhyana support 2018-09-27 18:29:00 +02:00
arm_big_little.c cpufreq: arm_big_little: Register an Energy Model 2019-02-07 09:55:11 +05:30
arm_big_little.h cpufreq: arm_big_little: make function arguments and structure pointer const 2017-11-08 23:22:19 +01:00
armada-8k-cpufreq.c cpufreq: ap806: add missing of_node_put after of_device_is_available 2019-02-25 09:59:15 +05:30
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: Work around for Hisilicon CPPC cpufreq 2019-02-18 11:27:42 +01:00
cpufreq_conservative.c cpufreq: conservative: Take limits changes into account properly 2018-10-16 12:34:45 +02:00
cpufreq_governor_attr_set.c
cpufreq_governor.c cpufreq/cpufreq_governor: Replace synchronize_sched() with synchronize_rcu() 2018-11-27 09:21:38 -08: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_powersave.c
cpufreq_stats.c cpufreq: stats: Fix concurrency issues while resetting stats 2019-02-01 11:52:11 +01:00
cpufreq_userspace.c
cpufreq-dt-platdev.c cpufreq: dt-platdev: add Tegra210 to blacklist 2019-02-06 14:31:19 +01:00
cpufreq-dt.c Merge branch 'pm-opp' 2019-03-04 11:19:14 +01:00
cpufreq-dt.h cpufreq: dt: Allow platform specific suspend/resume callbacks 2018-05-10 11:43:59 +02:00
cpufreq-nforce2.c cpufreq: nforce2: Remove meaningless return 2018-12-11 12:11:46 +01:00
cpufreq.c cpufreq: Improve kerneldoc comments for cpufreq_cpu_get/put() 2019-03-07 10:55:29 +01:00
davinci-cpufreq.c cpufreq: davinci: move configuration to include/linux/platform_data 2019-02-18 11:58:08 +05:30
e_powersaver.c cpufreq: e_powersaver: Use struct_size() in kzalloc() 2019-01-15 22:58:59 +01:00
elanfreq.c cpufreq: elanfreq: Don't validate the frequency table twice 2018-03-20 12:07:52 +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
ia64-acpi-cpufreq.c cpufreq: ia64: Remove unused header files 2018-12-11 12:11:46 +01:00
imx6q-cpufreq.c Merge branch 'pm-opp' 2019-03-04 11:19:14 +01:00
intel_pstate.c cpufreq: intel_pstate: Also use CPPC nominal_perf for base_frequency 2019-03-25 23:57:21 +01:00
Kconfig thermal: cpu_cooling: Require thermal core to be compiled in 2019-01-29 11:46:31 +01:00
Kconfig.arm Power management updates for 5.1-rc1 2019-03-06 12:59:46 -08:00
Kconfig.powerpc
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 cpufreq: longhaul: remove unneeded semicolon 2019-02-18 10:27:38 +05:30
longhaul.h
longrun.c cpufreq: Don't set transition_latency for setpolicy drivers 2017-07-26 00:15:43 +02:00
loongson1-cpufreq.c
loongson2_cpufreq.c cpufreq: Loongson2: constify platform_device_id 2017-08-18 01:44:21 +02:00
Makefile cpufreq: ap806: add cpufreq driver for Armada 8K 2019-02-07 10:01:51 +05:30
maple-cpufreq.c
mediatek-cpufreq.c Merge branch 'pm-opp' 2019-03-04 11:19:14 +01:00
mvebu-cpufreq.c cpufreq: mvebu: Remove OPPs using dev_pm_opp_remove() 2018-09-19 14:56:44 -07:00
omap-cpufreq.c cpufreq: OMAP: Register an Energy Model 2019-02-07 10:07:36 +05:30
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: remove unneeded semicolon 2019-02-18 10:27:38 +05:30
pmac32-cpufreq.c drivers/cpufreq: change CONFIG_6xx to CONFIG_PPC_BOOK3S_32 2018-11-26 22:33:37 +11:00
pmac64-cpufreq.c cpufreq: pmac64: add of_node_put() 2018-11-29 22:35:03 +01: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
powernv-cpufreq.c cpufreq: powernv: fix missing check of return value in init_powernv_pstates() 2019-02-18 10:27:38 +05:30
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: pxa2xx: remove incorrect __init annotation 2019-03-07 21:38:44 +01:00
pxa3xx-cpufreq.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
qcom-cpufreq-hw.c Merge branch 'cpufreq/arm/linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm into pm-cpufreq 2019-02-13 12:27:23 +01:00
qcom-cpufreq-kryo.c Merge branch 'cpufreq/arm/linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm into pm-cpufreq 2019-03-01 10:21:18 +01:00
qoriq-cpufreq.c cpufreq: qoriq: Use auto-registration of thermal cooling device 2019-01-30 23:06:08 +01:00
s3c24xx-cpufreq-debugfs.c cpufreq: s3c24xx: Change to use DEFINE_SHOW_ATTRIBUTE macro 2018-11-29 22:30:05 +01: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
s3c2412-cpufreq.c
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: Defer probe if getting regulators fail 2019-02-07 10:01:51 +05:30
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 Merge branch 'pm-opp' 2019-03-04 11:19:14 +01:00
scpi-cpufreq.c Merge branch 'pm-opp' 2019-03-04 11:19:14 +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: convert BUG() to BUG_ON() 2019-02-18 10:27:38 +05:30
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 Power management updates for 5.1-rc1 2019-03-06 12:59:46 -08:00
tegra186-cpufreq.c cpufreq: tegra186: don't pass GFP_DMA32 to dma_alloc_coherent() 2018-10-17 09:25:38 +02:00
ti-cpufreq.c cpufreq: ti-cpufreq: Only register platform_device when supported 2018-11-19 11:26:06 +01: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