dm: core: Avoid creating a name property when unflattening

The current implementation creates a 'name' value for every node. This
is not needed for the latest device tree format, which includes a name in
the node header.

Adjust the code to point the name at the node header instead.

Also simplify ofnode_get_name(), now that we can rely on it to set the
name correctly. Update the comment to make it clear what name the root
node has.

Signed-off-by: Simon Glass <sjg@chromium.org>
diff --git a/lib/of_live.c b/lib/of_live.c
index 30cae9a..1b5964d 100644
--- a/lib/of_live.c
+++ b/lib/of_live.c
@@ -97,6 +97,10 @@
 		char *fn;
 
 		fn = (char *)np + sizeof(*np);
+		if (new_format) {
+			np->name = pathp;
+			has_name = 1;
+		}
 		np->full_name = fn;
 		if (new_format) {
 			/* rebuild full path for new format */
@@ -202,7 +206,8 @@
 	}
 	if (!dryrun) {
 		*prev_pp = NULL;
-		np->name = of_get_property(np, "name", NULL);
+		if (!has_name)
+			np->name = of_get_property(np, "name", NULL);
 		np->type = of_get_property(np, "device_type", NULL);
 
 		if (!np->name)