diff options
-rw-r--r-- | drivers/firmware/psci.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/firmware/psci.c b/drivers/firmware/psci.c index 8263429..d159992 100644 --- a/drivers/firmware/psci.c +++ b/drivers/firmware/psci.c @@ -418,8 +418,7 @@ CPUIDLE_METHOD_OF_DECLARE(psci, "psci", &psci_cpuidle_ops); static int psci_system_suspend(unsigned long unused) { - return invoke_psci_fn(PSCI_FN_NATIVE(1_0, SYSTEM_SUSPEND), - virt_to_phys(cpu_resume), 0, 0); + return psci_cpu_suspend(0, virt_to_phys(cpu_resume)); } static int psci_system_suspend_enter(suspend_state_t state) @@ -439,6 +438,8 @@ static void __init psci_init_system_suspend(void) if (!IS_ENABLED(CONFIG_SUSPEND)) return; + suspend_set_ops(&psci_suspend_ops); + ret = psci_features(PSCI_FN_NATIVE(1_0, SYSTEM_SUSPEND)); if (ret != PSCI_RET_NOT_SUPPORTED) @@ -516,6 +517,7 @@ static void __init psci_0_2_set_functions(void) arm_pm_restart = psci_sys_reset; pm_power_off = psci_sys_poweroff; + psci_init_system_suspend(); } /* |