firmware: ti_sci: Use devm_register_restart_handler()
authorAndrew Davis <afd@ti.com>
Tue, 26 Mar 2024 22:37:27 +0000 (17:37 -0500)
committerNishanth Menon <nm@ti.com>
Tue, 9 Apr 2024 16:05:10 +0000 (11:05 -0500)
Use device life-cycle managed register function to simplify probe.

Signed-off-by: Andrew Davis <afd@ti.com>
Reviewed-by: Gabriel Somlo <gsomlo@gmail.com>
Reviewed-by: Markus Schneider-Pargmann <msp@baylibre.com>
Link: https://lore.kernel.org/r/20240326223730.54639-2-afd@ti.com
Signed-off-by: Nishanth Menon <nm@ti.com>
drivers/firmware/ti_sci.c

index 8b9a2556de16dc5d3d7f0e325f9818b084f47ddb..9885e1763591b12a898a23176fc9e49ee411c8fd 100644 (file)
@@ -87,7 +87,6 @@ struct ti_sci_desc {
  * struct ti_sci_info - Structure representing a TI SCI instance
  * @dev:       Device pointer
  * @desc:      SoC description for this instance
- * @nb:        Reboot Notifier block
  * @d:         Debugfs file entry
  * @debug_region: Memory region where the debug message are available
  * @debug_region_size: Debug region size
@@ -103,7 +102,6 @@ struct ti_sci_desc {
  */
 struct ti_sci_info {
        struct device *dev;
-       struct notifier_block nb;
        const struct ti_sci_desc *desc;
        struct dentry *d;
        void __iomem *debug_region;
@@ -122,7 +120,6 @@ struct ti_sci_info {
 
 #define cl_to_ti_sci_info(c)   container_of(c, struct ti_sci_info, cl)
 #define handle_to_ti_sci_info(h) container_of(h, struct ti_sci_info, handle)
-#define reboot_to_ti_sci_info(n) container_of(n, struct ti_sci_info, nb)
 
 #ifdef CONFIG_DEBUG_FS
 
@@ -3254,10 +3251,9 @@ devm_ti_sci_get_resource(const struct ti_sci_handle *handle, struct device *dev,
 }
 EXPORT_SYMBOL_GPL(devm_ti_sci_get_resource);
 
-static int tisci_reboot_handler(struct notifier_block *nb, unsigned long mode,
-                               void *cmd)
+static int tisci_reboot_handler(struct sys_off_data *data)
 {
-       struct ti_sci_info *info = reboot_to_ti_sci_info(nb);
+       struct ti_sci_info *info = data->cb_data;
        const struct ti_sci_handle *handle = &info->handle;
 
        ti_sci_cmd_core_reboot(handle);
@@ -3400,10 +3396,9 @@ static int ti_sci_probe(struct platform_device *pdev)
        ti_sci_setup_ops(info);
 
        if (reboot) {
-               info->nb.notifier_call = tisci_reboot_handler;
-               info->nb.priority = 128;
-
-               ret = register_restart_handler(&info->nb);
+               ret = devm_register_restart_handler(dev,
+                                                   tisci_reboot_handler,
+                                                   info);
                if (ret) {
                        dev_err(dev, "reboot registration fail(%d)\n", ret);
                        goto out;