mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-28 10:01:32 +00:00
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>
This commit is contained in:
parent
552da3357b
commit
15a1196be8
2 changed files with 4 additions and 1 deletions
|
@ -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);
|
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);
|
dev->sqq = uclass_find_next_free_req_seq(uc);
|
||||||
|
|
||||||
if (drv->plat_auto) {
|
if (drv->plat_auto) {
|
||||||
|
|
|
@ -44,6 +44,9 @@ struct udevice;
|
||||||
/* Members of this uclass sequence themselves with aliases */
|
/* Members of this uclass sequence themselves with aliases */
|
||||||
#define DM_UC_FLAG_SEQ_ALIAS (1 << 0)
|
#define DM_UC_FLAG_SEQ_ALIAS (1 << 0)
|
||||||
|
|
||||||
|
/* Members of this uclass without aliases don't get a sequence number */
|
||||||
|
#define DM_UC_FLAG_NO_AUTO_SEQ (1 << 1)
|
||||||
|
|
||||||
/* Same as DM_FLAG_ALLOC_PRIV_DMA */
|
/* Same as DM_FLAG_ALLOC_PRIV_DMA */
|
||||||
#define DM_UC_FLAG_ALLOC_PRIV_DMA (1 << 5)
|
#define DM_UC_FLAG_ALLOC_PRIV_DMA (1 << 5)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue