of: Fix phandle endian issues

The flat tree code wasn't fixing the endianness on phandle values when
unflattening the tree, and the code in drivers/of wasn't always doing a
be32_to_cpu before trying to dereference the phandle values.  This patch
fixes them.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index 6cfb307..65cfae1 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -54,7 +54,7 @@
 static struct device_node *of_irq_find_parent(struct device_node *child)
 {
 	struct device_node *p;
-	const phandle *parp;
+	const __be32 *parp;
 
 	if (!of_node_get(child))
 		return NULL;
@@ -67,7 +67,7 @@
 			if (of_irq_workarounds & OF_IMAP_NO_PHANDLE)
 				p = of_node_get(of_irq_dflt_pic);
 			else
-				p = of_find_node_by_phandle(*parp);
+				p = of_find_node_by_phandle(be32_to_cpup(parp));
 		}
 		of_node_put(child);
 		child = p;
@@ -206,7 +206,7 @@
 			if (of_irq_workarounds & OF_IMAP_NO_PHANDLE)
 				newpar = of_node_get(of_irq_dflt_pic);
 			else
-				newpar = of_find_node_by_phandle((phandle)*imap);
+				newpar = of_find_node_by_phandle(be32_to_cpup(imap));
 			imap++;
 			--imaplen;