We do not want to compile the DM remove code for SPL. Currently, we undef it in include/config_uncmd_spl.h (for C files) and in scripts/Makefile.uncmd_spl (for Makefiles). This is really ugly.
This commit demonstrates how we can deprecate those two files. Use $(SPL_) for the entry in the Makfile and CONFIG_IS_ENABLED() in C files. Signed-off-by: Masahiro Yamada <yamada.masah...@socionext.com> --- Changes in v2: None drivers/core/Makefile | 2 +- drivers/core/device.c | 6 +++--- drivers/core/uclass.c | 4 ++-- include/config_uncmd_spl.h | 1 - include/dm/device-internal.h | 10 +++++----- include/dm/uclass-internal.h | 4 ++-- scripts/Makefile.uncmd_spl | 2 -- 7 files changed, 13 insertions(+), 16 deletions(-) diff --git a/drivers/core/Makefile b/drivers/core/Makefile index d3cd968..d7ffac0 100644 --- a/drivers/core/Makefile +++ b/drivers/core/Makefile @@ -9,7 +9,7 @@ obj-$(CONFIG_DEVRES) += devres.o ifndef CONFIG_SPL_BUILD obj-$(CONFIG_OF_CONTROL) += simple-bus.o endif -obj-$(CONFIG_DM_DEVICE_REMOVE) += device-remove.o +obj-$(CONFIG_$(SPL_)DM_DEVICE_REMOVE) += device-remove.o obj-$(CONFIG_DM) += dump.o obj-$(CONFIG_OF_CONTROL) += regmap.o obj-$(CONFIG_OF_CONTROL) += syscon-uclass.o diff --git a/drivers/core/device.c b/drivers/core/device.c index b479be7..47ec9c0 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -140,7 +140,7 @@ int device_bind(struct udevice *parent, const struct driver *drv, return 0; fail_child_post_bind: - if (IS_ENABLED(CONFIG_DM_DEVICE_REMOVE)) { + if (CONFIG_IS_ENABLED(DM_DEVICE_REMOVE)) { if (drv->unbind && drv->unbind(dev)) { dm_warn("unbind() method failed on dev '%s' on error path\n", dev->name); @@ -148,14 +148,14 @@ fail_child_post_bind: } fail_bind: - if (IS_ENABLED(CONFIG_DM_DEVICE_REMOVE)) { + if (CONFIG_IS_ENABLED(DM_DEVICE_REMOVE)) { if (uclass_unbind_device(dev)) { dm_warn("Failed to unbind dev '%s' on error path\n", dev->name); } } fail_uclass_bind: - if (IS_ENABLED(CONFIG_DM_DEVICE_REMOVE)) { + if (CONFIG_IS_ENABLED(DM_DEVICE_REMOVE)) { list_del(&dev->sibling_node); if (dev->flags & DM_FLAG_ALLOC_PARENT_PDATA) { free(dev->parent_platdata); diff --git a/drivers/core/uclass.c b/drivers/core/uclass.c index aba9880..adf13a7 100644 --- a/drivers/core/uclass.c +++ b/drivers/core/uclass.c @@ -391,7 +391,7 @@ err: return ret; } -#ifdef CONFIG_DM_DEVICE_REMOVE +#if CONFIG_IS_ENABLED(DM_DEVICE_REMOVE) int uclass_unbind_device(struct udevice *dev) { struct uclass *uc; @@ -471,7 +471,7 @@ int uclass_post_probe_device(struct udevice *dev) return 0; } -#ifdef CONFIG_DM_DEVICE_REMOVE +#if CONFIG_IS_ENABLED(DM_DEVICE_REMOVE) int uclass_pre_remove_device(struct udevice *dev) { struct uclass_driver *uc_drv; diff --git a/include/config_uncmd_spl.h b/include/config_uncmd_spl.h index c191f56..86cc0c3 100644 --- a/include/config_uncmd_spl.h +++ b/include/config_uncmd_spl.h @@ -32,7 +32,6 @@ #endif #undef CONFIG_DM_WARN -#undef CONFIG_DM_DEVICE_REMOVE #undef CONFIG_DM_SEQ_ALIAS #undef CONFIG_DM_STDIO diff --git a/include/dm/device-internal.h b/include/dm/device-internal.h index 7da4216..83e7e34 100644 --- a/include/dm/device-internal.h +++ b/include/dm/device-internal.h @@ -87,7 +87,7 @@ int device_probe_child(struct udevice *dev, void *parent_priv); * @dev: Pointer to device to remove * @return 0 if OK, -ve on error (an error here is normally a very bad thing) */ -#ifdef CONFIG_DM_DEVICE_REMOVE +#if CONFIG_IS_ENABLED(DM_DEVICE_REMOVE) int device_remove(struct udevice *dev); #else static inline int device_remove(struct udevice *dev) { return 0; } @@ -101,7 +101,7 @@ static inline int device_remove(struct udevice *dev) { return 0; } * @dev: Pointer to device to unbind * @return 0 if OK, -ve on error */ -#ifdef CONFIG_DM_DEVICE_REMOVE +#if CONFIG_IS_ENABLED(DM_DEVICE_REMOVE) int device_unbind(struct udevice *dev); #else static inline int device_unbind(struct udevice *dev) { return 0; } @@ -112,7 +112,7 @@ static inline int device_unbind(struct udevice *dev) { return 0; } * @dev: The device whose children are to be removed * @return 0 on success, -ve on error */ -#ifdef CONFIG_DM_DEVICE_REMOVE +#if CONFIG_IS_ENABLED(DM_DEVICE_REMOVE) int device_remove_children(struct udevice *dev); #else static inline int device_remove_children(struct udevice *dev) { return 0; } @@ -127,13 +127,13 @@ static inline int device_remove_children(struct udevice *dev) { return 0; } * @dev: The device that is to be stripped of its children * @return 0 on success, -ve on error */ -#ifdef CONFIG_DM_DEVICE_REMOVE +#if CONFIG_IS_ENABLED(DM_DEVICE_REMOVE) int device_unbind_children(struct udevice *dev); #else static inline int device_unbind_children(struct udevice *dev) { return 0; } #endif -#ifdef CONFIG_DM_DEVICE_REMOVE +#if CONFIG_IS_ENABLED(DM_DEVICE_REMOVE) void device_free(struct udevice *dev); #else static inline void device_free(struct udevice *dev) {} diff --git a/include/dm/uclass-internal.h b/include/dm/uclass-internal.h index 9b68508..b51e1da 100644 --- a/include/dm/uclass-internal.h +++ b/include/dm/uclass-internal.h @@ -116,7 +116,7 @@ int uclass_bind_device(struct udevice *dev); * @dev: Pointer to the device * #return 0 on success, -ve on error */ -#ifdef CONFIG_DM_DEVICE_REMOVE +#if CONFIG_IS_ENABLED(DM_DEVICE_REMOVE) int uclass_unbind_device(struct udevice *dev); #else static inline int uclass_unbind_device(struct udevice *dev) { return 0; } @@ -153,7 +153,7 @@ int uclass_post_probe_device(struct udevice *dev); * @dev: Pointer to the device * #return 0 on success, -ve on error */ -#ifdef CONFIG_DM_DEVICE_REMOVE +#if CONFIG_IS_ENABLED(DM_DEVICE_REMOVE) int uclass_pre_remove_device(struct udevice *dev); #else static inline int uclass_pre_remove_device(struct udevice *dev) { return 0; } diff --git a/scripts/Makefile.uncmd_spl b/scripts/Makefile.uncmd_spl index 4f05652..a0630d1 100644 --- a/scripts/Makefile.uncmd_spl +++ b/scripts/Makefile.uncmd_spl @@ -15,6 +15,4 @@ CONFIG_DM_SPI= CONFIG_DM_SPI_FLASH= endif -CONFIG_DM_DEVICE_REMOVE= - endif -- 1.9.1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot