diff options
-rw-r--r-- | arch/arm/boards/qemu-virt/board.c | 3 | ||||
-rw-r--r-- | arch/arm/cpu/dtb.c | 4 | ||||
-rw-r--r-- | arch/kvx/lib/dtb.c | 4 | ||||
-rw-r--r-- | arch/mips/boot/dtb.c | 4 | ||||
-rw-r--r-- | arch/openrisc/lib/dtb.c | 4 | ||||
-rw-r--r-- | arch/riscv/lib/dtb.c | 5 | ||||
-rw-r--r-- | arch/sandbox/board/dtb.c | 4 | ||||
-rw-r--r-- | drivers/of/base.c | 16 | ||||
-rw-r--r-- | include/of.h | 4 |
9 files changed, 20 insertions, 28 deletions
diff --git a/arch/arm/boards/qemu-virt/board.c b/arch/arm/boards/qemu-virt/board.c index d0a7e3da4f..5ce1ecfc24 100644 --- a/arch/arm/boards/qemu-virt/board.c +++ b/arch/arm/boards/qemu-virt/board.c @@ -40,9 +40,8 @@ static int replace_dtb(void) { overlay = of_unflatten_dtb(__dtb_overlay_of_flash_start); of_overlay_apply_tree(root, overlay); - barebox_register_of(root); - return 0; + return barebox_register_of(root); } pure_initcall(replace_dtb); diff --git a/arch/arm/cpu/dtb.c b/arch/arm/cpu/dtb.c index 35f251d99a..9aa979ca08 100644 --- a/arch/arm/cpu/dtb.c +++ b/arch/arm/cpu/dtb.c @@ -26,8 +26,6 @@ static int of_arm_init(void) return 0; } - barebox_register_fdt(fdt); - - return 0; + return barebox_register_fdt(fdt); } core_initcall(of_arm_init); diff --git a/arch/kvx/lib/dtb.c b/arch/kvx/lib/dtb.c index 09898017c9..3d65bd7bd4 100644 --- a/arch/kvx/lib/dtb.c +++ b/arch/kvx/lib/dtb.c @@ -9,8 +9,6 @@ static int of_kvx_init(void) { - barebox_register_fdt(boot_dtb); - - return 0; + return barebox_register_fdt(boot_dtb); } core_initcall(of_kvx_init); diff --git a/arch/mips/boot/dtb.c b/arch/mips/boot/dtb.c index 6fce4700cc..dbb6315d1f 100644 --- a/arch/mips/boot/dtb.c +++ b/arch/mips/boot/dtb.c @@ -41,8 +41,6 @@ static int of_mips_init(void) if (!fdt) fdt = __dtb_start; - barebox_register_fdt(fdt); - - return 0; + return barebox_register_fdt(fdt); } core_initcall(of_mips_init); diff --git a/arch/openrisc/lib/dtb.c b/arch/openrisc/lib/dtb.c index 61cf35ddf3..0507eed1d7 100644 --- a/arch/openrisc/lib/dtb.c +++ b/arch/openrisc/lib/dtb.c @@ -28,8 +28,6 @@ static int of_openrisc_init(void) if (root) return 0; - barebox_register_fdt(__dtb_start); - - return 0; + return barebox_register_fdt(__dtb_start); } core_initcall(of_openrisc_init); diff --git a/arch/riscv/lib/dtb.c b/arch/riscv/lib/dtb.c index 8c2f5b2518..aa28795387 100644 --- a/arch/riscv/lib/dtb.c +++ b/arch/riscv/lib/dtb.c @@ -9,6 +9,7 @@ static int of_riscv_init(void) { void *fdt; + int ret; /* See if we are provided a dtb in boarddata */ fdt = barebox_riscv_boot_dtb(); @@ -20,11 +21,11 @@ static int of_riscv_init(void) pr_debug("using boarddata provided DTB\n"); - barebox_register_fdt(fdt); + ret = barebox_register_fdt(fdt); /* do it now, before clocksource drivers run postcore */ timer_init(); - return 0; + return ret; } core_initcall(of_riscv_init); diff --git a/arch/sandbox/board/dtb.c b/arch/sandbox/board/dtb.c index 4a8cbfb26f..98d2e774b8 100644 --- a/arch/sandbox/board/dtb.c +++ b/arch/sandbox/board/dtb.c @@ -39,8 +39,6 @@ static int of_sandbox_init(void) if (!dtb) dtb = __dtb_sandbox_start; - barebox_register_fdt(dtb); - - return 0; + return barebox_register_fdt(dtb); } core_initcall(of_sandbox_init); diff --git a/drivers/of/base.c b/drivers/of/base.c index 6fe02649ee..b99201a50f 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -1699,32 +1699,34 @@ int of_set_root_node(struct device_node *node) return 0; } -void barebox_register_of(struct device_node *root) +int barebox_register_of(struct device_node *root) { if (root_node) - return; + return -EBUSY; of_set_root_node(root); of_fix_tree(root); if (IS_ENABLED(CONFIG_OFDEVICE)) - of_probe(); + return of_probe(); + + return 0; } -void barebox_register_fdt(const void *dtb) +int barebox_register_fdt(const void *dtb) { struct device_node *root; if (root_node) - return; + return -EBUSY; root = of_unflatten_dtb(dtb); if (IS_ERR(root)) { pr_err("Cannot unflatten dtb: %pe\n", root); - return; + return PTR_ERR(root); } - barebox_register_of(root); + return barebox_register_of(root); } /** diff --git a/include/of.h b/include/of.h index 645f429bde..66d1edcc5c 100644 --- a/include/of.h +++ b/include/of.h @@ -261,8 +261,8 @@ extern int of_modalias_node(struct device_node *node, char *modalias, int len); extern struct device_node *of_get_root_node(void); extern int of_set_root_node(struct device_node *node); -extern void barebox_register_of(struct device_node *root); -extern void barebox_register_fdt(const void *dtb); +extern int barebox_register_of(struct device_node *root); +extern int barebox_register_fdt(const void *dtb); extern struct device_d *of_platform_device_create(struct device_node *np, struct device_d *parent); |