linux-imx/drivers/cpufreq
Perry Yuan 3b843046db cpufreq: amd-pstate: fix the highest frequency issue which limits performance
commit bf202e654b upstream.

To address the performance drop issue, an optimization has been
implemented. The incorrect highest performance value previously set by the
low-level power firmware for AMD CPUs with Family ID 0x19 and Model ID
ranging from 0x70 to 0x7F series has been identified as the cause.

To resolve this, a check has been implemented to accurately determine the
CPU family and model ID. The correct highest performance value is now set
and the performance drop caused by the incorrect highest performance value
are eliminated.

Before the fix, the highest frequency was set to 4200MHz, now it is set
to 4971MHz which is correct.

CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE    MAXMHZ   MINMHZ       MHZ
  0    0      0    0 0:0:0:0          yes 4971.0000 400.0000  400.0000
  1    0      0    0 0:0:0:0          yes 4971.0000 400.0000  400.0000
  2    0      0    1 1:1:1:0          yes 4971.0000 400.0000 4865.8140
  3    0      0    1 1:1:1:0          yes 4971.0000 400.0000  400.0000

Fixes: f3a0523918 ("cpufreq: amd-pstate: Enable amd-pstate preferred core support")
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218759
Signed-off-by: Perry Yuan <perry.yuan@amd.com>
Co-developed-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Tested-by: Gaha Bana <gahabana@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-09-12 11:11:40 +02:00
..
acpi-cpufreq.c cpufreq: ACPI: Mark boost policy as enabled when setting boost 2024-07-18 13:21:22 +02:00
amd_freq_sensitivity.c
amd-pstate-trace.c
amd-pstate-trace.h
amd-pstate-ut.c ARM cpufreq updates for 6.6 2023-08-28 14:12:05 +02:00
amd-pstate.c cpufreq: amd-pstate: fix the highest frequency issue which limits performance 2024-09-12 11:11:40 +02:00
apple-soc-cpufreq.c cpufreq: apple-soc: Fix an IS_ERR() vs NULL check 2023-03-01 19:34:54 +01:00
armada-8k-cpufreq.c cpufreq: armada-8k: add ap807 support 2023-06-19 09:50:31 +05:30
armada-37xx-cpufreq.c cpufreq: Explicitly include correct DT includes 2023-07-20 16:01:57 +05:30
bmips-cpufreq.c
brcmstb-avs-cpufreq.c cpufreq: brcmstb-avs-cpufreq: ISO C90 forbids mixed declarations 2024-06-12 11:11:45 +02:00
cppc_cpufreq.c cppc_cpufreq: Fix possible null pointer dereference 2024-06-12 11:11:42 +02:00
cpufreq_conservative.c
cpufreq_governor_attr_set.c
cpufreq_governor.c cpufreq: governor: Free dbs_data directly when gov->init() fails 2023-08-29 20:21:35 +02:00
cpufreq_governor.h
cpufreq_ondemand.c
cpufreq_ondemand.h
cpufreq_performance.c
cpufreq_powersave.c
cpufreq_stats.c cpufreq: stats: Fix buffer overflow detection in trans_stats() 2023-11-28 17:20:00 +00:00
cpufreq_userspace.c
cpufreq-dt-platdev.c cpufreq: blocklist more Qualcomm platforms in cpufreq-dt-platdev 2023-08-09 10:57:18 +05:30
cpufreq-dt.c cpufreq: dt: always allocate zeroed cpumask 2024-04-03 15:28:35 +02:00
cpufreq-dt.h
cpufreq-nforce2.c
cpufreq.c cpufreq: Allow drivers to advertise boost enabled 2024-07-18 13:21:23 +02:00
davinci-cpufreq.c cpufreq: davinci: Convert to platform remove callback returning void 2023-07-20 16:02:13 +05:30
e_powersaver.c
elanfreq.c
freq_table.c cpufreq: Fix per-policy boost behavior on SoCs using cpufreq_boost_set_sw() 2024-03-26 18:20:08 -04:00
gx-suspmod.c
highbank-cpufreq.c
ia64-acpi-cpufreq.c
imx-cpufreq-dt.c cpufreq: imx-cpufreq-dt: Convert to platform remove callback returning void 2023-07-20 16:02:13 +05:30
imx6q-cpufreq.c cpufreq: imx6q: Don't disable 792 Mhz OPP unnecessarily 2023-12-08 08:52:24 +01:00
intel_pstate.c cpufreq: intel_pstate: Use HWP to initialize ITMT if CPPC is missing 2024-07-05 09:34:01 +02:00
Kconfig cpufreq: Make CONFIG_CPUFREQ_DT_PLATDEV depend on OF 2023-06-30 09:43:43 +02:00
Kconfig.arm cpufreq: qcom-hw: add CONFIG_COMMON_CLK dependency 2024-03-26 18:19:30 -04:00
Kconfig.powerpc
Kconfig.x86 cpufreq: amd-pstate: Add a kernel config option to set default mode 2023-06-21 18:44:56 +02:00
kirkwood-cpufreq.c cpufreq: kirkwood: Convert to platform remove callback returning void 2023-07-20 16:02:13 +05:30
longhaul.c
longhaul.h
longrun.c
loongson2_cpufreq.c
Makefile Power management updates for 6.3-rc1 2023-02-21 12:13:58 -08:00
maple-cpufreq.c cpufreq: Adjust includes to remove of_device.h 2023-04-13 17:46:35 -05:00
mediatek-cpufreq-hw.c cpufreq: mediatek-hw: Don't error out if supply is not found 2024-03-26 18:19:23 -04:00
mediatek-cpufreq.c cpufreq: mediatek-hw: Remove unused define 2023-08-11 06:15:21 +05:30
mvebu-cpufreq.c
omap-cpufreq.c cpufreq: omap: Convert to platform remove callback returning void 2023-07-20 16:02:14 +05:30
p4-clockmod.c
pasemi-cpufreq.c
pcc-cpufreq.c cpufreq: pcc: Fix the potentinal scheduling delays in target_index() 2023-08-29 20:41:29 +02:00
pmac32-cpufreq.c Devicetree updates for v6.4, part 2: 2023-04-27 10:09:05 -07:00
pmac64-cpufreq.c cpufreq: Adjust includes to remove of_device.h 2023-04-13 17:46:35 -05:00
powernow-k6.c
powernow-k7.c
powernow-k7.h
powernow-k8.c cpufreq: powernow-k8: Use related_cpus instead of cpus in driver.exit() 2023-08-28 12:27:30 +05:30
powernow-k8.h
powernv-cpufreq.c
ppc_cbe_cpufreq_pervasive.c
ppc_cbe_cpufreq_pmi.c cpufreq: Explicitly include correct DT includes 2023-07-20 16:01:57 +05:30
ppc_cbe_cpufreq.c cpufreq: Explicitly include correct DT includes 2023-07-20 16:01:57 +05:30
ppc_cbe_cpufreq.h
pxa2xx-cpufreq.c
pxa3xx-cpufreq.c
qcom-cpufreq-hw.c cpufreq: qcom-cpufreq-hw: add support for 4 freq domains 2023-08-23 20:31:08 +05:30
qcom-cpufreq-nvmem.c cpufreq: qcom-nvmem: fix memory leaks in probe error paths 2024-08-11 12:47:14 +02:00
qoriq-cpufreq.c cpufreq: qoriq: Convert to platform remove callback returning void 2023-07-20 16:02:13 +05:30
raspberrypi-cpufreq.c cpufreq: raspberrypi: Convert to platform remove callback returning void 2023-07-20 16:02:13 +05:30
s3c64xx-cpufreq.c
s5pv210-cpufreq.c
sa1110-cpufreq.c
sc520_freq.c
scmi-cpufreq.c cpufreq: scmi: Avoid overflow of target_freq in fast switch 2024-09-08 07:54:43 +02:00
scpi-cpufreq.c cpufreq: scpi: Convert to platform remove callback returning void 2023-07-20 16:02:12 +05:30
sh-cpufreq.c
sparc-us2e-cpufreq.c cpufreq: sparc: Don't mark cpufreq callbacks with __init 2023-07-12 12:45:18 +02:00
sparc-us3-cpufreq.c cpufreq: sparc: Don't mark cpufreq callbacks with __init 2023-07-12 12:45:18 +02:00
spear-cpufreq.c cpufreq: Adjust includes to remove of_device.h 2023-04-13 17:46:35 -05:00
speedstep-centrino.c
speedstep-ich.c
speedstep-lib.c
speedstep-lib.h
speedstep-smi.c
sti-cpufreq.c cpufreq: Explicitly include correct DT includes 2023-07-20 16:01:57 +05:30
sun50i-cpufreq-nvmem.c cpufreq: sun50i: Convert to platform remove callback returning void 2023-07-20 16:02:12 +05:30
tegra20-cpufreq.c Devicetree updates for v6.4, part 2: 2023-04-27 10:09:05 -07:00
tegra124-cpufreq.c Devicetree updates for v6.4, part 2: 2023-04-27 10:09:05 -07:00
tegra186-cpufreq.c cpufreq: tegra186: Convert to platform remove callback returning void 2023-07-20 16:02:13 +05:30
tegra194-cpufreq.c cpufreq: tegra194: fix warning due to missing opp_put 2023-11-20 11:58:57 +01:00
ti-cpufreq.c cpufreq: ti-cpufreq: Handle deferred probe with dev_err_probe() 2024-08-03 08:53:27 +02:00
vexpress-spc-cpufreq.c cpufreq: vexpress: Convert to platform remove callback returning void 2023-07-20 16:02:12 +05:30