[PATCH v2] power: reset: keystone: Use register_sys_off_handler(SYS_OFF_MODE_RESTART)
From: Andrew Davis
Date: Tue Mar 03 2026 - 13:00:24 EST
Function register_restart_handler() is deprecated. Using this new API
removes our need to keep and manage a struct notifier_block.
Signed-off-by: Andrew Davis <afd@xxxxxx>
---
Changes for v2:
- Use devm_ version of register_sys_off_handler() to keep return type int
drivers/power/reset/keystone-reset.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/drivers/power/reset/keystone-reset.c b/drivers/power/reset/keystone-reset.c
index d9268d150e1f9..3c44cd6cee0aa 100644
--- a/drivers/power/reset/keystone-reset.c
+++ b/drivers/power/reset/keystone-reset.c
@@ -48,8 +48,7 @@ static inline int rsctrl_enable_rspll_write(void)
RSCTRL_KEY_MASK, RSCTRL_KEY);
}
-static int rsctrl_restart_handler(struct notifier_block *this,
- unsigned long mode, void *cmd)
+static int rsctrl_restart_handler(struct sys_off_data *data)
{
/* enable write access to RSTCTRL */
rsctrl_enable_rspll_write();
@@ -61,11 +60,6 @@ static int rsctrl_restart_handler(struct notifier_block *this,
return NOTIFY_DONE;
}
-static struct notifier_block rsctrl_restart_nb = {
- .notifier_call = rsctrl_restart_handler,
- .priority = 128,
-};
-
static const struct of_device_id rsctrl_of_match[] = {
{.compatible = "ti,keystone-reset", },
{},
@@ -140,7 +134,8 @@ static int rsctrl_probe(struct platform_device *pdev)
return ret;
}
- ret = register_restart_handler(&rsctrl_restart_nb);
+ ret = devm_register_sys_off_handler(dev, SYS_OFF_MODE_RESTART, 128,
+ rsctrl_restart_handler, NULL);
if (ret)
dev_err(dev, "cannot register restart handler (err=%d)\n", ret);
--
2.39.2