dm: core: Adjust uclass setup with of-platdata

When OF_PLATDATA_INST is enabled we don't need to create the uclass list.
Instead we just need to point to the existing list. Update the code
accordingly.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2021-03-15 17:25:16 +13:00
parent 1ef3af3b27
commit 3fa9f553c0
2 changed files with 9 additions and 2 deletions

View File

@ -140,8 +140,12 @@ int dm_init(bool of_live)
dm_warn("Virtual root driver already exists!\n"); dm_warn("Virtual root driver already exists!\n");
return -EINVAL; return -EINVAL;
} }
gd->uclass_root = &DM_UCLASS_ROOT_S_NON_CONST; if (CONFIG_IS_ENABLED(OF_PLATDATA_INST)) {
INIT_LIST_HEAD(DM_UCLASS_ROOT_NON_CONST); gd->uclass_root = &uclass_head;
} else {
gd->uclass_root = &DM_UCLASS_ROOT_S_NON_CONST;
INIT_LIST_HEAD(DM_UCLASS_ROOT_NON_CONST);
}
if (IS_ENABLED(CONFIG_NEEDS_MANUAL_RELOC)) { if (IS_ENABLED(CONFIG_NEEDS_MANUAL_RELOC)) {
fix_drivers(); fix_drivers();

View File

@ -11,6 +11,9 @@
struct udevice; struct udevice;
/* Head of the uclass list if CONFIG_OF_PLATDATA_INST is enabled */
extern struct list_head uclass_head;
/** /**
* dm_root() - Return pointer to the top of the driver tree * dm_root() - Return pointer to the top of the driver tree
* *