dm: core: allow device_bind() to not return a device pointer
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Thu, 27 Aug 2015 03:44:28 +0000 (12:44 +0900)
committerLothar Waßmann <LW@KARO-electronics.de>
Thu, 10 Sep 2015 10:19:18 +0000 (12:19 +0200)
This is useful when we want to bind a device, but do not need the
pointer to the device.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Simon Glass <sjg@chromium.org>
drivers/core/device.c
include/dm/device-internal.h
include/dm/lists.h

index 01f6647..afa4b4f 100644 (file)
@@ -32,7 +32,8 @@ int device_bind(struct udevice *parent, const struct driver *drv,
        struct uclass *uc;
        int size, ret = 0;
 
-       *devp = NULL;
+       if (devp)
+               *devp = NULL;
        if (!name)
                return -EINVAL;
 
@@ -133,7 +134,8 @@ int device_bind(struct udevice *parent, const struct driver *drv,
 
        if (parent)
                dm_dbg("Bound device %s to %s\n", dev->name, parent->name);
-       *devp = dev;
+       if (devp)
+               *devp = dev;
 
        dev->flags |= DM_FLAG_BOUND;
 
index 04884f1..322d35a 100644 (file)
@@ -31,7 +31,7 @@ struct udevice;
  * devices which use device tree.
  * @of_offset: Offset of device tree node for this device. This is -1 for
  * devices which don't use device tree.
- * @devp: Returns a pointer to the bound device
+ * @devp: if non-NULL, returns a pointer to the bound device
  * @return 0 if OK, -ve on error
  */
 int device_bind(struct udevice *parent, const struct driver *drv,
@@ -48,7 +48,7 @@ int device_bind(struct udevice *parent, const struct driver *drv,
  * @pre_reloc_only: If true, bind the driver only if its DM_INIT_F flag is set.
  * If false bind the driver always.
  * @info: Name and platdata for this device
- * @devp: Returns a pointer to the bound device
+ * @devp: if non-NULL, returns a pointer to the bound device
  * @return 0 if OK, -ve on error
  */
 int device_bind_by_name(struct udevice *parent, bool pre_reloc_only,
index 61610e6..4513d6a 100644 (file)
@@ -68,7 +68,7 @@ int lists_bind_fdt(struct udevice *parent, const void *blob, int offset,
  * @parent:    Parent device
  * @drv_name:  Name of driver to attach to this parent
  * @dev_name:  Name of the new device thus created
- * @devp:      Returns the newly bound device
+ * @devp:      If non-NULL, returns the newly bound device
  */
 int device_bind_driver(struct udevice *parent, const char *drv_name,
                       const char *dev_name, struct udevice **devp);
@@ -83,7 +83,7 @@ int device_bind_driver(struct udevice *parent, const char *drv_name,
  * @drv_name:  Name of driver to attach to this parent
  * @dev_name:  Name of the new device thus created
  * @node:      Device tree node
- * @devp:      Returns the newly bound device
+ * @devp:      If non-NULL, returns the newly bound device
  */
 int device_bind_driver_to_node(struct udevice *parent, const char *drv_name,
                               const char *dev_name, int node,