Message ID | 20230101181715.42199-3-samuel@sholland.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | firmware/psci: Switch to the sys-off handler API | expand |
On Sun, Jan 01, 2023 at 12:17:15PM -0600, Samuel Holland wrote: > Any other poweroff handlers registered at the default priority will > run before the legacy pm_power_off() function. Register the PSCI > poweroff handler with the correct priority to ensure it runs first. > > PSCI_0_2_FN_SYSTEM_OFF never returns, so the value returned from > psci_sys_poweroff() is meaningless, but that function must return > some value to have the right prototype for a notifier callback. > Reviewed-by: Sudeep Holla <sudeep.holla@arm.com> Tested-by: Sudeep Holla <sudeep.holla@arm.com> -- Regards, Sudeep
diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/psci/psci.c index e7bcfca4159f..6d528021925d 100644 --- a/drivers/firmware/psci/psci.c +++ b/drivers/firmware/psci/psci.c @@ -13,7 +13,6 @@ #include <linux/errno.h> #include <linux/linkage.h> #include <linux/of.h> -#include <linux/pm.h> #include <linux/printk.h> #include <linux/psci.h> #include <linux/reboot.h> @@ -322,9 +321,11 @@ static struct notifier_block psci_sys_reset_nb = { .priority = 129, }; -static void psci_sys_poweroff(void) +static int psci_sys_poweroff(struct sys_off_data *data) { invoke_psci_fn(PSCI_0_2_FN_SYSTEM_OFF, 0, 0, 0); + + return NOTIFY_DONE; } static int psci_features(u32 psci_func_id) @@ -603,7 +604,9 @@ static void __init psci_0_2_set_functions(void) register_restart_handler(&psci_sys_reset_nb); - pm_power_off = psci_sys_poweroff; + register_sys_off_handler(SYS_OFF_MODE_POWER_OFF, + SYS_OFF_PRIO_FIRMWARE, + psci_sys_poweroff, NULL); } /*
Any other poweroff handlers registered at the default priority will run before the legacy pm_power_off() function. Register the PSCI poweroff handler with the correct priority to ensure it runs first. PSCI_0_2_FN_SYSTEM_OFF never returns, so the value returned from psci_sys_poweroff() is meaningless, but that function must return some value to have the right prototype for a notifier callback. Signed-off-by: Samuel Holland <samuel@sholland.org> --- Changes in v2: - Update commit messages drivers/firmware/psci/psci.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)