aboutsummaryrefslogtreecommitdiff
path: root/drivers/core
diff options
context:
space:
mode:
authorSimon Glass2020-12-16 21:20:17 -0700
committerSimon Glass2020-12-18 20:32:21 -0700
commit15a1196be81c6bfc847a58dc65151ce439630f7d (patch)
tree73bfe631752d843842c6efea66c14eba54c415b8 /drivers/core
parent552da3357b5139b9b0e4d2c2917820e996ae865e (diff)
dm: core: Allow manual sequence numbering
Some buses have their own rules which require assigning sequence numbers with a bus-specific algorithm. For example, PCI requires that sub-buses are numbered higher than their parent buses, meaning effectively that parent buses must be numbered only after all of their child buses have been numbered. Add a uclass flag to indicate that driver model should not assign sequence numbers. In this case, the uclass must do it. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/core')
-rw-r--r--drivers/core/device.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/core/device.c b/drivers/core/device.c
index 1e681333d35..d2cf05c8c44 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -103,7 +103,7 @@ static int device_bind_common(struct udevice *parent, const struct driver *drv,
dev->req_seq = uclass_find_next_free_req_seq(uc);
}
}
- if (auto_seq)
+ if (auto_seq && !(uc->uc_drv->flags & DM_UC_FLAG_NO_AUTO_SEQ))
dev->sqq = uclass_find_next_free_req_seq(uc);
if (drv->plat_auto) {