48 lines
1.6 KiB
Diff
48 lines
1.6 KiB
Diff
|
From c42a82a583646dcbba8500d47ed878616ab5c33a Mon Sep 17 00:00:00 2001
|
||
|
From: Mario Limonciello <mario.limonciello@amd.com>
|
||
|
Date: Mon, 28 Oct 2024 09:55:42 -0500
|
||
|
Subject: cpufreq/amd-pstate: Move registration after static function call
|
||
|
update
|
||
|
|
||
|
On shared memory designs the static functions need to work before
|
||
|
registration is done or the system can hang at bootup.
|
||
|
|
||
|
Move the registration later in amd_pstate_init() to solve this.
|
||
|
|
||
|
Fixes: e238968a2087 ("cpufreq/amd-pstate: Remove the redundant amd_pstate_set_driver() call")
|
||
|
Reported-by: Klara Modin <klarasmodin@gmail.com>
|
||
|
Closes: https://lore.kernel.org/linux-pm/cf9c146d-bacf-444e-92e2-15ebf513af96@gmail.com/#t
|
||
|
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
||
|
---
|
||
|
drivers/cpufreq/amd-pstate.c | 12 ++++++------
|
||
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
||
|
|
||
|
--- a/drivers/cpufreq/amd-pstate.c
|
||
|
+++ b/drivers/cpufreq/amd-pstate.c
|
||
|
@@ -1880,12 +1880,6 @@ static int __init amd_pstate_init(void)
|
||
|
return -ENODEV;
|
||
|
}
|
||
|
|
||
|
- ret = amd_pstate_register_driver(cppc_state);
|
||
|
- if (ret) {
|
||
|
- pr_err("failed to register with return %d\n", ret);
|
||
|
- return ret;
|
||
|
- }
|
||
|
-
|
||
|
/* capability check */
|
||
|
if (cpu_feature_enabled(X86_FEATURE_CPPC)) {
|
||
|
pr_debug("AMD CPPC MSR based functionality is supported\n");
|
||
|
@@ -1896,6 +1890,12 @@ static int __init amd_pstate_init(void)
|
||
|
static_call_update(amd_pstate_update_perf, shmem_update_perf);
|
||
|
}
|
||
|
|
||
|
+ ret = amd_pstate_register_driver(cppc_state);
|
||
|
+ if (ret) {
|
||
|
+ pr_err("failed to register with return %d\n", ret);
|
||
|
+ return ret;
|
||
|
+ }
|
||
|
+
|
||
|
if (amd_pstate_prefcore) {
|
||
|
ret = amd_detect_prefcore(&amd_pstate_prefcore);
|
||
|
if (ret)
|