acrn-kernel/drivers/cpufreq
Wyes Karny 4654e9f9f4 amd-pstate: Fix amd_pstate mode switch
amd_pstate mode can be changed by writing the mode name to the `status`
sysfs. But some combinations are not working. Fix this issue by taking
care of the edge cases.

Before the fix the mode change combination test fails:

 #./pst_test.sh
Test passed: from: disable, to
Test passed: from: disable, to disable
Test failed: 1, From mode: disable, to mode: passive
Test failed: 1, From mode: disable, to mode: active
Test failed: 1, From mode: passive, to mode: active
Test passed: from: passive, to disable
Test failed: 1, From mode: passive, to mode: passive
Test failed: 1, From mode: passive, to mode: active
Test failed: 1, From mode: active, to mode: active
Test passed: from: active, to disable
Test failed: 1, From mode: active, to mode: passive
Test failed: 1, From mode: active, to mode: active

After the fix test passes:

 #./pst_test.sh
Test passed: from: disable, to
Test passed: from: disable, to disable
Test passed: from: disable, to passive
Test passed: from: disable, to active
Test passed: from: passive, to active
Test passed: from: passive, to disable
Test passed: from: passive, to passive
Test passed: from: passive, to active
Test passed: from: active, to active
Test passed: from: active, to disable
Test passed: from: active, to passive
Test passed: from: active, to active

Fixes: abd61c08ef ("cpufreq: amd-pstate: add driver working mode switch support")
Acked-by: Huang Rui <ray.huang@amd.com>
Reviewed-by: Alexey Kardashevskiy <aik@amd.com>
Signed-off-by: Wyes Karny <wyes.karny@amd.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2023-04-11 20:44:25 +02:00
..
Kconfig Power management updates for 6.3-rc1 2023-02-21 12:13:58 -08:00
Kconfig.arm cpufreq: remove s3c24xx drivers 2023-01-16 09:26:06 +01:00
Kconfig.powerpc
Kconfig.x86 cpufreq: amd-pstate: change amd-pstate driver to be built-in type 2022-11-22 19:57:15 +01:00
Makefile Power management updates for 6.3-rc1 2023-02-21 12:13:58 -08:00
acpi-cpufreq.c cpufreq: ACPI: Only set boost MSRs on supported CPUs 2022-12-06 12:12:40 +01:00
amd-pstate-trace.c
amd-pstate-trace.h
amd-pstate-ut.c cpufreq: amd-pstate: fix spdxcheck warnings for amd-pstate-ut.c 2022-11-16 08:38:19 -07:00
amd-pstate.c amd-pstate: Fix amd_pstate mode switch 2023-04-11 20:44:25 +02:00
amd_freq_sensitivity.c cpufreq: amd_freq_sensitivity: Add missing pci_dev_put() 2022-11-30 19:50:04 +01: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
armada-37xx-cpufreq.c cpufreq: armada-37xx: stop using 0 as NULL pointer 2023-01-10 09:32:03 +05:30
bmips-cpufreq.c cpufreq: bmips-cpufreq: Use module_init and add module_exit 2022-08-30 13:49:23 +05:30
brcmstb-avs-cpufreq.c cpufreq: Make cpufreq_unregister_driver() return void 2023-02-09 20:19:18 +01:00
cppc_cpufreq.c cpufreq: CPPC: Add u64 casts to avoid overflowing 2022-12-27 08:27:14 +05:30
cpufreq-dt-platdev.c cpufreq: Add SM6375 to cpufreq-dt-platdev blocklist 2023-01-04 12:05:06 +05:30
cpufreq-dt.c cpufreq: dt: Switch to use dev_err_probe() helper 2022-10-18 16:22:25 +05:30
cpufreq-dt.h
cpufreq-nforce2.c
cpufreq.c cpufreq: Make kobj_type structure constant 2023-02-09 20:29:32 +01:00
cpufreq_conservative.c
cpufreq_governor.c
cpufreq_governor.h
cpufreq_governor_attr_set.c
cpufreq_ondemand.c
cpufreq_ondemand.h
cpufreq_performance.c
cpufreq_powersave.c
cpufreq_stats.c cpufreq: stats: Convert to use sysfs_emit_at() API 2022-12-06 12:20:07 +01:00
cpufreq_userspace.c
davinci-cpufreq.c cpufreq: davinci: Fix clk use after free 2023-02-09 20:26:42 +01:00
e_powersaver.c
elanfreq.c
freq_table.c
gx-suspmod.c
highbank-cpufreq.c cpufreq: Add __init annotation to module init funcs 2022-09-26 11:15:04 +05:30
ia64-acpi-cpufreq.c
imx-cpufreq-dt.c
imx6q-cpufreq.c cpufreq: imx6q: Switch to use dev_err_probe() helper 2022-10-18 16:22:25 +05:30
intel_pstate.c More power management updates for 6.3-rc1 2023-03-03 10:30:58 -08:00
kirkwood-cpufreq.c
longhaul.c cpufreq: longhaul: Make array speeds static const 2022-11-03 19:13:34 +01:00
longhaul.h
longrun.c
loongson2_cpufreq.c
maple-cpufreq.c
mediatek-cpufreq-hw.c Cpufreq arm updates for 6.3 2023-02-14 15:25:07 +01:00
mediatek-cpufreq.c
mvebu-cpufreq.c
omap-cpufreq.c cpufreq: Make cpufreq_unregister_driver() return void 2023-02-09 20:19:18 +01:00
p4-clockmod.c
pasemi-cpufreq.c
pcc-cpufreq.c
pmac32-cpufreq.c
pmac64-cpufreq.c
powernow-k6.c
powernow-k7.c
powernow-k7.h
powernow-k8.c
powernow-k8.h
powernv-cpufreq.c
ppc_cbe_cpufreq.c
ppc_cbe_cpufreq.h
ppc_cbe_cpufreq_pervasive.c
ppc_cbe_cpufreq_pmi.c
pxa2xx-cpufreq.c
pxa3xx-cpufreq.c
qcom-cpufreq-hw.c Merge back cpufreq material for 6.3-rc1. 2023-02-14 15:22:31 +01:00
qcom-cpufreq-nvmem.c cpufreq: qcom-nvmem: Switch to use dev_err_probe() helper 2022-10-18 16:22:26 +05:30
qoriq-cpufreq.c
raspberrypi-cpufreq.c
s3c64xx-cpufreq.c
s5pv210-cpufreq.c
sa1110-cpufreq.c ARM: sa1100: remove unused board files 2023-01-12 10:53:12 +01:00
sc520_freq.c
scmi-cpufreq.c
scpi-cpufreq.c
sh-cpufreq.c
sparc-us2e-cpufreq.c
sparc-us3-cpufreq.c
spear-cpufreq.c cpufreq: SPEAr: Make read-only array sys_clk_src static 2022-11-03 19:15:45 +01:00
speedstep-centrino.c
speedstep-ich.c
speedstep-lib.c
speedstep-lib.h
speedstep-smi.c
sti-cpufreq.c cpufreq: Add __init annotation to module init funcs 2022-09-26 11:15:04 +05:30
sun50i-cpufreq-nvmem.c cpufreq: sun50i: Switch to use dev_err_probe() helper 2022-10-18 16:22:26 +05:30
tegra20-cpufreq.c
tegra124-cpufreq.c
tegra186-cpufreq.c cpufreq: tegra186: Use flexible array to simplify memory allocation 2022-12-01 14:49:50 +05:30
tegra194-cpufreq.c cpufreq: tegra194: Enable CPUFREQ thermal cooling 2023-02-06 09:31:38 +05:30
ti-cpufreq.c cpufreq: ti-cpufreq: Add support for AM625 2022-11-07 15:30:11 +05:30
vexpress-spc-cpufreq.c