powerpc: Run on old powermacs.

Old powermacs have a number of differences from current machines:
- there is no interrupt tree in the device tree, just interrupt
  or AAPL,interrupt properties
- the chosen node in the device tree is called /chosen@0
- the OF claim method doesn't map the memory, so we have to do
  an explicit map call as well
- there is no /chosen/cpu property on SMP machines
- the NVRAM isn't structured as a set of partitions.

This adapts the merged powermac support code to cope with these
issues.

Signed-off-by: Paul Mackerras <paulus@samba.org>
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c
index 50f5dd7..908e492 100644
--- a/arch/powerpc/platforms/powermac/setup.c
+++ b/arch/powerpc/platforms/powermac/setup.c
@@ -225,7 +225,7 @@
 		return 0;
 	printk("WARNING ! Your machine is PMU-based but your kernel\n");
 	printk("          wasn't compiled with CONFIG_ADB_PMU option !\n");
-	return;
+	return 0;
 }
 #endif
 
@@ -293,7 +293,7 @@
 
 void __init pmac_setup_arch(void)
 {
-	struct device_node *cpu;
+	struct device_node *cpu, *ic;
 	int *fp;
 	unsigned long pvr;
 
@@ -319,6 +319,12 @@
 		of_node_put(cpu);
 	}
 
+	/* See if newworld or oldworld */
+	ic = of_find_node_by_name(NULL, "interrupt-controller");
+	pmac_newworld = (ic != NULL);
+	if (ic)
+		of_node_put(ic);
+
 	/* Lookup PCI hosts */
 	pmac_pci_init();