From: Rob Herring Date: Mon, 17 Jul 2023 14:37:16 +0000 (-0600) Subject: of: Move of_platform_register_reconfig_notifier() into DT core X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=73aca58b781e3e3d52bb7247b374fb5334a05001;p=linux.git of: Move of_platform_register_reconfig_notifier() into DT core 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 Link: https://lore.kernel.org/r/20230717143718.1715773-1-robh@kernel.org Signed-off-by: Rob Herring --- diff --git a/drivers/base/platform.c b/drivers/base/platform.c index 77510e4f47de8..76bfcba250039 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c @@ -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; } diff --git a/drivers/of/base.c b/drivers/of/base.c index 166fb7d753378..e235f3a57ea89 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -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); diff --git a/drivers/of/of_private.h b/drivers/of/of_private.h index b57f1014e419c..f38397c7b5824 100644 --- a/drivers/of/of_private.h +++ b/drivers/of/of_private.h @@ -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); diff --git a/drivers/of/platform.c b/drivers/of/platform.c index 051e29b7ad2b8..e71adb394b417 100644 --- a/drivers/of/platform.c +++ b/drivers/of/platform.c @@ -21,6 +21,8 @@ #include #include +#include "of_private.h" + const struct of_device_id of_default_bus_match_table[] = { { .compatible = "simple-bus", }, { .compatible = "simple-mfd", }, diff --git a/include/linux/of_platform.h b/include/linux/of_platform.h index d8045bcfc35ed..fadfea5754852 100644 --- a/include/linux/of_platform.h +++ b/include/linux/of_platform.h @@ -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 */