From 49b97d9c8ea7b11c4fc9e457cc2cd9fd6ebf0c21 Mon Sep 17 00:00:00 2001
From: Kumar Gala <galak@kernel.crashing.org>
Date: Tue, 30 Mar 2010 10:19:26 -0500
Subject: [PATCH] fdt: Add fdt_del_node_and_alias helper

Add a helper function that given an alias will delete both the node
the alias points to and the alias itself

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Gerald Van Baren <vanbaren@cideas.com>
---
 common/fdt_support.c  | 13 +++++++++++++
 include/fdt_support.h |  1 +
 2 files changed, 14 insertions(+)

diff --git a/common/fdt_support.c b/common/fdt_support.c
index b7d4fe5063..b6f252a87b 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -976,3 +976,16 @@ void fdt_fixup_mtdparts(void *blob, void *node_info, int node_info_size)
 	}
 }
 #endif
+
+void fdt_del_node_and_alias(void *blob, const char *alias)
+{
+	int off = fdt_path_offset(blob, alias);
+
+	if (off < 0)
+		return;
+
+	fdt_del_node(blob, off);
+
+	off = fdt_path_offset(blob, "/aliases");
+	fdt_delprop(blob, off, alias);
+}
diff --git a/include/fdt_support.h b/include/fdt_support.h
index a3d5f8cbfe..9a453af34b 100644
--- a/include/fdt_support.h
+++ b/include/fdt_support.h
@@ -82,6 +82,7 @@ int fdt_resize(void *blob);
 int fdt_fixup_nor_flash_size(void *blob, int cs, u32 size);
 
 void fdt_fixup_mtdparts(void *fdt, void *node_info, int node_info_size);
+void fdt_del_node_and_alias(void *blob, const char *alias);
 
 #endif /* ifdef CONFIG_OF_LIBFDT */
 #endif /* ifndef __FDT_SUPPORT_H */
-- 
2.39.5