power: reset: xgene-reboot: Use devm_register_sys_off_handler(RESTART)
authorAndrew Davis <afd@ti.com>
Mon, 12 Feb 2024 16:28:16 +0000 (10:28 -0600)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Tue, 13 Feb 2024 01:17:25 +0000 (02:17 +0100)
Use device life-cycle managed register function to simplify probe.

Signed-off-by: Andrew Davis <afd@ti.com>
Link: https://lore.kernel.org/r/20240212162831.67838-5-afd@ti.com
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/reset/xgene-reboot.c

index 6b545a83d88897be8c32a17749aacc5ca47170cf..867162dfe7eaeff2d9a18a59e3642d1340d55362 100644 (file)
@@ -24,15 +24,11 @@ struct xgene_reboot_context {
        struct device *dev;
        void __iomem *csr;
        u32 mask;
-       struct notifier_block restart_handler;
 };
 
-static int xgene_restart_handler(struct notifier_block *this,
-                                unsigned long mode, void *cmd)
+static int xgene_restart_handler(struct sys_off_data *data)
 {
-       struct xgene_reboot_context *ctx =
-               container_of(this, struct xgene_reboot_context,
-                            restart_handler);
+       struct xgene_reboot_context *ctx = data->cb_data;
 
        /* Issue the reboot */
        writel(ctx->mask, ctx->csr);
@@ -64,9 +60,8 @@ static int xgene_reboot_probe(struct platform_device *pdev)
                ctx->mask = 0xFFFFFFFF;
 
        ctx->dev = dev;
-       ctx->restart_handler.notifier_call = xgene_restart_handler;
-       ctx->restart_handler.priority = 128;
-       err = register_restart_handler(&ctx->restart_handler);
+       err = devm_register_sys_off_handler(dev, SYS_OFF_MODE_RESTART, 128,
+                                           xgene_restart_handler, ctx);
        if (err)
                dev_err(dev, "cannot register restart handler (err=%d)\n", err);