
Hi Jean-Jacques,
On 18 June 2018 at 07:56, Jean-Jacques Hiblot jjhiblot@ti.com wrote:
Signed-off-by: Jean-Jacques Hiblot jjhiblot@ti.com
Please add a commit message with motivation and purpose.
Also please add a test for this (e.g. in test/dm/core.c
Changes in v2: New
drivers/core/uclass.c | 21 +++++++++++++++++++++ include/dm/uclass-internal.h | 11 +++++++++++ 2 files changed, 32 insertions(+)
diff --git a/drivers/core/uclass.c b/drivers/core/uclass.c index 0085d3f..6efce20 100644 --- a/drivers/core/uclass.c +++ b/drivers/core/uclass.c @@ -171,6 +171,27 @@ enum uclass_id uclass_get_by_name(const char *name) return UCLASS_INVALID; }
+int dev_find_uclass_index(struct udevice *dev, struct uclass **ucp) +{
struct udevice *iter;
struct uclass *uc = dev->uclass;
int i = 0;
if (list_empty(&uc->dev_head))
return -ENODEV;
list_for_each_entry(iter, &uc->dev_head, uclass_node) {
if (iter == dev) {
if (ucp)
*ucp = uc;
return i;
}
i++;
}
return -ENODEV;
+}
int uclass_find_device(enum uclass_id id, int index, struct udevice **devp) { struct uclass *uc; diff --git a/include/dm/uclass-internal.h b/include/dm/uclass-internal.h index 7ba064b..30d5a4f 100644 --- a/include/dm/uclass-internal.h +++ b/include/dm/uclass-internal.h @@ -24,6 +24,17 @@ int uclass_get_device_tail(struct udevice *dev, int ret, struct udevice **devp);
/**
- dev_get_uclass_index() - Get uclass and index of device
- @dev: - in - Device that we want the uclass/index of
- @ucp: - out - A pointer to the uclass the device belongs to
- The device is not prepared for use - this is an internal function.
- @return the index of the device in the uclass list or -ENODEV if not found.
- */
+int dev_get_uclass_index(struct udevice *dev, struct uclass **ucp);
find or get? It should be find, since it doesn't probe anything.
+/**
- uclass_find_device() - Return n-th child of uclass
- @id: Id number of the uclass
- @index: Position of the child in uclass's list
-- 2.7.4
Regards, Simon