of: Move of_platform_register_reconfig_notifier() into DT core
authorRob Herring <robh@kernel.org>
Mon, 17 Jul 2023 14:37:16 +0000 (08:37 -0600)
committerRob Herring <robh@kernel.org>
Fri, 4 Aug 2023 17:36:33 +0000 (11:36 -0600)
There's no reason the generic platform bus code needs to call
of_platform_register_reconfig_notifier(). The notifier can be setup
before the platform bus is. Let's move it into of_core_init() which is
called just before platform_bus_init() instead to keep more of the DT
bits in the DT code.

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20230717143718.1715773-1-robh@kernel.org
Signed-off-by: Rob Herring <robh@kernel.org>
drivers/base/platform.c
drivers/of/base.c
drivers/of/of_private.h
drivers/of/platform.c
include/linux/of_platform.h

index 77510e4..76bfcba 100644 (file)
@@ -1528,6 +1528,6 @@ int __init platform_bus_init(void)
        error =  bus_register(&platform_bus_type);
        if (error)
                device_unregister(&platform_bus);
-       of_platform_register_reconfig_notifier();
+
        return error;
 }
index 166fb7d..e235f3a 100644 (file)
@@ -167,6 +167,7 @@ void __init of_core_init(void)
 {
        struct device_node *np;
 
+       of_platform_register_reconfig_notifier();
 
        /* Create the kset, and register existing nodes */
        mutex_lock(&of_mutex);
index b57f101..f38397c 100644 (file)
@@ -60,6 +60,12 @@ static inline int of_property_notify(int action, struct device_node *np,
 }
 #endif /* CONFIG_OF_DYNAMIC */
 
+#if defined(CONFIG_OF_DYNAMIC) && defined(CONFIG_OF_ADDRESS)
+void of_platform_register_reconfig_notifier(void);
+#else
+static inline void of_platform_register_reconfig_notifier(void) { }
+#endif
+
 #if defined(CONFIG_OF_KOBJ)
 int of_node_is_attached(const struct device_node *node);
 int __of_add_property_sysfs(struct device_node *np, struct property *pp);
index 051e29b..e71adb3 100644 (file)
@@ -21,6 +21,8 @@
 #include <linux/of_platform.h>
 #include <linux/platform_device.h>
 
+#include "of_private.h"
+
 const struct of_device_id of_default_bus_match_table[] = {
        { .compatible = "simple-bus", },
        { .compatible = "simple-mfd", },
index d8045bc..fadfea5 100644 (file)
@@ -127,10 +127,4 @@ static inline int devm_of_platform_populate(struct device *dev)
 static inline void devm_of_platform_depopulate(struct device *dev) { }
 #endif
 
-#if defined(CONFIG_OF_DYNAMIC) && defined(CONFIG_OF_ADDRESS)
-extern void of_platform_register_reconfig_notifier(void);
-#else
-static inline void of_platform_register_reconfig_notifier(void) { }
-#endif
-
 #endif /* _LINUX_OF_PLATFORM_H */