summaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorDarren Stevens <darren@stevens-zone.net>2016-08-31 14:24:45 +0200
committerMichael Ellerman <mpe@ellerman.id.au>2016-09-13 09:37:08 +0200
commit687e16bc2f9231334942cc41febc27d666b07299 (patch)
tree614d71932e812495b3cdbc877e2c7fff462465db /arch/powerpc
parentpowerpc/pasemi: Fix Nemo SB600 i8259 interrupts. (diff)
downloadlinux-687e16bc2f9231334942cc41febc27d666b07299.tar.xz
linux-687e16bc2f9231334942cc41febc27d666b07299.zip
powerpc/pasemi: Fix device_type of Nemo SB600 node.
The of_node for the SB600 (io-bridge) has its device_type set to 'io-bridge' Set it to 'isa' so that it can be found by isa_bridge_find_early() instead of using patches in the kernel. Signed-off-by: Darren Stevens <darren@stevens-zone.net> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/kernel/prom_init.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index ca697e551ebc..88ac964f4858 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -2703,6 +2703,22 @@ static void __init fixup_device_tree_pasemi(void)
prom_setprop(node, pci_name, "interrupt-parent", &parent,
sizeof(parent));
}
+
+ /*
+ * The io-bridge has device_type set to 'io-bridge' change it to 'isa'
+ * so that generic isa-bridge code can add the SB600 and its on-board
+ * peripherals.
+ */
+ name = "/pxp@0,e0000000/io-bridge@0";
+ iob = call_prom("finddevice", 1, 1, ADDR(name));
+ if (!PHANDLE_VALID(iob))
+ return;
+
+ /* device_type is already set, just change it. */
+
+ prom_printf("Changing device_type of SB600 node...\n");
+
+ prom_setprop(iob, name, "device_type", "isa", sizeof("isa"));
}
#else /* !CONFIG_PPC_PASEMI_NEMO */
static inline void fixup_device_tree_pasemi(void) { }