summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPrzemyslaw Marczak <p.marczak@samsung.com>2015-04-15 11:07:24 (GMT)
committerSimon Glass <sjg@chromium.org>2015-04-22 17:03:15 (GMT)
commitcc73d37b7f1edbbf03e2abcf5815bdd122e8baed (patch)
tree049e945aed984e4e1bbee25aa51145592bb24150
parentb7af1a2da767c0dd283ffce3d50efd36af32df14 (diff)
downloadu-boot-fsl-qoriq-cc73d37b7f1edbbf03e2abcf5815bdd122e8baed.tar.xz
dm: core: device: add function: dev_get_driver_ops()
This commit extends the driver model device's API by function: - dev_get_driver_ops() And this function returns the device's driver's operations if given: - dev pointer, is non-NULL - dev->driver->ops pointer, is non-NULL in other case the, the NULL pointer is returned. Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com> Cc: Simon Glass <sjg@chromium.org> Acked-by: Simon Glass <sjg@chromium.org>
-rw-r--r--drivers/core/device.c8
-rw-r--r--include/dm/device.h11
2 files changed, 19 insertions, 0 deletions
diff --git a/drivers/core/device.c b/drivers/core/device.c
index 80eb55b..d024abb 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -499,6 +499,14 @@ ulong dev_get_driver_data(struct udevice *dev)
return dev->driver_data;
}
+const void *dev_get_driver_ops(struct udevice *dev)
+{
+ if (!dev || !dev->driver->ops)
+ return NULL;
+
+ return dev->driver->ops;
+}
+
enum uclass_id device_get_uclass_id(struct udevice *dev)
{
return dev->uclass->uc_drv->id;
diff --git a/include/dm/device.h b/include/dm/device.h
index ad002fe..049cb2f 100644
--- a/include/dm/device.h
+++ b/include/dm/device.h
@@ -280,6 +280,17 @@ void *dev_get_uclass_priv(struct udevice *dev);
*/
ulong dev_get_driver_data(struct udevice *dev);
+/**
+ * dev_get_driver_ops() - get the device's driver's operations
+ *
+ * This checks that dev is not NULL, and returns the pointer to device's
+ * driver's operations.
+ *
+ * @dev: Device to check
+ * @return void pointer to driver's operations or NULL for NULL-dev or NULL-ops
+ */
+const void *dev_get_driver_ops(struct udevice *dev);
+
/*
* device_get_uclass_id() - return the uclass ID of a device
*