[ARM] 5037/1: Orion: fix DNS323/Kurobox Pro PCI initialisation
authorLennert Buytenhek <buytenh@wantstofly.org>
Thu, 15 May 2008 09:31:14 +0000 (10:31 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 17 May 2008 21:55:15 +0000 (22:55 +0100)
Whereas most Orion 5x machine support code would initialise the PCI
subsystem with nr_controllers in their struct hw_pci set to 2, the
DNS323 and Kurobox Pro machine support code had nr_controllers set
to 1.

This was presumably done because on those two machines, the PCI(-X)
controller (nr == 1) isn't used, requiring initialisation of only
the PCIe controller (nr == 0.)  However, not initialising the PCI(-X)
controller on boards that don't use it leads to a situation where
both the PCIe and the PCI(-X) controller think that their root bus is
zero, and it messes up IRQ assignment.

This patch changes the DNS323 and Kurobox Pro support code to always
use nr_controllers == 2.

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-orion5x/dns323-setup.c
arch/arm/mach-orion5x/kurobox_pro-setup.c

index f9430f5ca9a8891d01ea4a5f2ea57894af0e923e..27ce967ab9e5c3792420bd47badd441ff527950f 100644 (file)
@@ -58,7 +58,7 @@ static int __init dns323_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 }
 
 static struct hw_pci dns323_pci __initdata = {
-       .nr_controllers = 1,
+       .nr_controllers = 2,
        .swizzle        = pci_std_swizzle,
        .setup          = orion5x_pci_sys_setup,
        .scan           = orion5x_pci_sys_scan_bus,
index 88410862feefa6d7b3c2d75b546ad80de62c485e..f5074b877b7fbfbc6dfcfe7eb8d7a1852c66e3cb 100644 (file)
@@ -138,7 +138,7 @@ static int __init kurobox_pro_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 }
 
 static struct hw_pci kurobox_pro_pci __initdata = {
-       .nr_controllers = 1,
+       .nr_controllers = 2,
        .swizzle        = pci_std_swizzle,
        .setup          = orion5x_pci_sys_setup,
        .scan           = orion5x_pci_sys_scan_bus,