summaryrefslogtreecommitdiff
path: root/include/dm
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2014-11-10 17:16:47 -0700
committerSimon Glass <sjg@chromium.org>2014-11-21 08:13:02 +0100
commit3ac435d33a8f6a4e28df6bc068cb0569bc8061ad (patch)
tree9c13282080d8b92f6b83f46b393dd3567ea96610 /include/dm
parent1151651831ff11b3f40d132bb9ab012e95a8faa1 (diff)
downloadu-boot-imx-3ac435d33a8f6a4e28df6bc068cb0569bc8061ad.zip
u-boot-imx-3ac435d33a8f6a4e28df6bc068cb0569bc8061ad.tar.gz
u-boot-imx-3ac435d33a8f6a4e28df6bc068cb0569bc8061ad.tar.bz2
dm: Allow device removal features to be dropped
For SPL we don't expect to need to remove a device. Save some code space by dropping this feature. The board config can define CONFIG_DM_DEVICE_REMOVE if this is in fact needed. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@ti.com>
Diffstat (limited to 'include/dm')
-rw-r--r--include/dm/device-internal.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/dm/device-internal.h b/include/dm/device-internal.h
index 44cb7ef..f0cc794 100644
--- a/include/dm/device-internal.h
+++ b/include/dm/device-internal.h
@@ -87,7 +87,11 @@ 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
int device_remove(struct udevice *dev);
+#else
+static inline int device_remove(struct udevice *dev) { return 0; }
+#endif
/**
* device_unbind() - Unbind a device, destroying it
@@ -99,6 +103,12 @@ int device_remove(struct udevice *dev);
*/
int device_unbind(struct udevice *dev);
+#ifdef CONFIG_DM_DEVICE_REMOVE
+void device_free(struct udevice *dev);
+#else
+static inline void device_free(struct udevice *dev) {}
+#endif
+
/* Cast away any volatile pointer */
#define DM_ROOT_NON_CONST (((gd_t *)gd)->dm_root)
#define DM_UCLASS_ROOT_NON_CONST (((gd_t *)gd)->uclass_root)