fdtdec_get_addr_size uses architecture dependent datatypes which causes
the 32-bit R5 to fail when reading the 64-bit size and addr fields of
reg nodes from the fdt.

This changes it to a common api for both 64 and 32 bit platforms.
Now fdt fixups can be applied to the fdt from R5.

Signed-off-by: Anshul Dalal <ansh...@ti.com>
---
 arch/arm/mach-k3/common_fdt.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-k3/common_fdt.c b/arch/arm/mach-k3/common_fdt.c
index 4a016711566..02a3e2c7748 100644
--- a/arch/arm/mach-k3/common_fdt.c
+++ b/arch/arm/mach-k3/common_fdt.c
@@ -139,7 +139,9 @@ int fdt_fixup_reserved(void *blob, const char *name,
                        return -EINVAL;
                if (!strncmp(node_name, name, strlen(name))) {
                        /* Read out old size first */
-                       addr = fdtdec_get_addr_size(blob, subnode, "reg", 
&size);
+                       addr = fdtdec_get_addr_size_fixed(
+                               blob, subnode, "reg", 0, 8 / sizeof(fdt32_t),
+                               8 / sizeof(fdt32_t), &size, false);
                        if (addr == FDT_ADDR_T_NONE)
                                return -EINVAL;
                        new_size = size;
-- 
2.43.0

Reply via email to