arm: mach-omap2: fdt-common: Add OP-TEE node when firmware node is defined
authorAndrew F. Davis <afd@ti.com>
Mon, 10 Jul 2017 19:45:51 +0000 (14:45 -0500)
committerTom Rini <trini@konsulko.com>
Sun, 23 Jul 2017 02:22:44 +0000 (22:22 -0400)
If a firmware node is already present in the FDT we will fail to create
one and so fail to add our OP-TEE node, make this fixup first check for
a firmware node and then only try to add one if it is not found.

Signed-off-by: Andrew F. Davis <afd@ti.com>
arch/arm/mach-omap2/fdt-common.c

index 297d4d4..9297e9d 100644 (file)
@@ -134,14 +134,22 @@ int ft_hs_add_tee(void *fdt, bd_t *bd)
        if (!tee_loaded)
                return 0;
 
-       path = "/";
+       path = "/firmware";
        offs = fdt_path_offset(fdt, path);
-
-       subpath = "firmware";
-       offs = fdt_add_subnode(fdt, offs, subpath);
        if (offs < 0) {
-               printf("Could not create %s node.\n", subpath);
-               return 1;
+               path = "/";
+               offs = fdt_path_offset(fdt, path);
+               if (offs < 0) {
+                       printf("Could not find root node.\n");
+                       return 1;
+               }
+
+               subpath = "firmware";
+               offs = fdt_add_subnode(fdt, offs, subpath);
+               if (offs < 0) {
+                       printf("Could not create %s node.\n", subpath);
+                       return 1;
+               }
        }
 
        subpath = "optee";