Skip to content

Commit 4b992ea

Browse files
committed
Merge tag 'pm-6.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management fix from Rafael Wysocki: "Make the amd-pstate cpufreq driver take all of the possible combinations of the 'old' and 'new' status values correctly while changing the operation mode via sysfs (Wyes Karny)" * tag 'pm-6.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: amd-pstate: Fix amd_pstate mode switch
2 parents d0b85e7 + 4654e9f commit 4b992ea

1 file changed

Lines changed: 8 additions & 10 deletions

File tree

drivers/cpufreq/amd-pstate.c

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -840,33 +840,31 @@ static int amd_pstate_update_status(const char *buf, size_t size)
840840

841841
switch(mode_idx) {
842842
case AMD_PSTATE_DISABLE:
843-
if (!current_pstate_driver)
844-
return -EINVAL;
845-
if (cppc_state == AMD_PSTATE_ACTIVE)
846-
return -EBUSY;
847-
cpufreq_unregister_driver(current_pstate_driver);
848-
amd_pstate_driver_cleanup();
843+
if (current_pstate_driver) {
844+
cpufreq_unregister_driver(current_pstate_driver);
845+
amd_pstate_driver_cleanup();
846+
}
849847
break;
850848
case AMD_PSTATE_PASSIVE:
851849
if (current_pstate_driver) {
852850
if (current_pstate_driver == &amd_pstate_driver)
853851
return 0;
854852
cpufreq_unregister_driver(current_pstate_driver);
855-
cppc_state = AMD_PSTATE_PASSIVE;
856-
current_pstate_driver = &amd_pstate_driver;
857853
}
858854

855+
current_pstate_driver = &amd_pstate_driver;
856+
cppc_state = AMD_PSTATE_PASSIVE;
859857
ret = cpufreq_register_driver(current_pstate_driver);
860858
break;
861859
case AMD_PSTATE_ACTIVE:
862860
if (current_pstate_driver) {
863861
if (current_pstate_driver == &amd_pstate_epp_driver)
864862
return 0;
865863
cpufreq_unregister_driver(current_pstate_driver);
866-
current_pstate_driver = &amd_pstate_epp_driver;
867-
cppc_state = AMD_PSTATE_ACTIVE;
868864
}
869865

866+
current_pstate_driver = &amd_pstate_epp_driver;
867+
cppc_state = AMD_PSTATE_ACTIVE;
870868
ret = cpufreq_register_driver(current_pstate_driver);
871869
break;
872870
default:

0 commit comments

Comments
 (0)