diff options
author | Simon Glass | 2020-12-16 21:20:08 -0700 |
---|---|---|
committer | Simon Glass | 2020-12-18 20:32:21 -0700 |
commit | d03adb4a78d18b5506350b3ac72ab2f18f1ed160 (patch) | |
tree | e5d27de4a64912a3152d490d33638d60b07d7a36 /drivers/core | |
parent | 8b85dfc675f12de8d04126c07f3c796965b990c2 (diff) |
dm: core: Update uclass_find_next_free_req_seq() args
At present this is passed a uclass ID and it has to do a lookup. The
callers all have the uclass pointer, except for the I2C uclass where the
code will soon be deleted.
Update the argument to a uclass * instead of an ID since it is more
efficient.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/core')
-rw-r--r-- | drivers/core/device.c | 4 | ||||
-rw-r--r-- | drivers/core/uclass.c | 8 |
2 files changed, 3 insertions, 9 deletions
diff --git a/drivers/core/device.c b/drivers/core/device.c index fce990994ca..22d80694cd8 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -89,10 +89,10 @@ static int device_bind_common(struct udevice *parent, const struct driver *drv, #if CONFIG_IS_ENABLED(OF_PRIOR_STAGE) if (dev->req_seq == -1) dev->req_seq = - uclass_find_next_free_req_seq(drv->id); + uclass_find_next_free_req_seq(uc); #endif } else { - dev->req_seq = uclass_find_next_free_req_seq(drv->id); + dev->req_seq = uclass_find_next_free_req_seq(uc); } } diff --git a/drivers/core/uclass.c b/drivers/core/uclass.c index e2372c65d29..96b7d16f3fc 100644 --- a/drivers/core/uclass.c +++ b/drivers/core/uclass.c @@ -272,17 +272,11 @@ int uclass_find_device_by_name(enum uclass_id id, const char *name, return -ENODEV; } -int uclass_find_next_free_req_seq(enum uclass_id id) +int uclass_find_next_free_req_seq(struct uclass *uc) { - struct uclass *uc; struct udevice *dev; - int ret; int max = -1; - ret = uclass_get(id, &uc); - if (ret) - return ret; - list_for_each_entry(dev, &uc->dev_head, uclass_node) { if ((dev->req_seq != -1) && (dev->req_seq > max)) max = dev->req_seq; |