diff options
author | Lennert Buytenhek <buytenh@wantstofly.org> | 2008-05-15 05:31:14 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-05-17 17:55:15 -0400 |
commit | bbdf1c1e58f215940243bedc235e48ed7e8d6f2d (patch) | |
tree | 1feb32bfc181b47bca059a5d7a5ee6b1d8b37a77 | |
parent | b3a8b751c1c2997653c6bf2b5d10467c39f3cc6e (diff) |
[ARM] 5037/1: Orion: fix DNS323/Kurobox Pro PCI initialisation
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>
-rw-r--r-- | arch/arm/mach-orion5x/dns323-setup.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-orion5x/kurobox_pro-setup.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/mach-orion5x/dns323-setup.c b/arch/arm/mach-orion5x/dns323-setup.c index f9430f5ca9a8..27ce967ab9e5 100644 --- a/arch/arm/mach-orion5x/dns323-setup.c +++ b/arch/arm/mach-orion5x/dns323-setup.c | |||
@@ -58,7 +58,7 @@ static int __init dns323_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | |||
58 | } | 58 | } |
59 | 59 | ||
60 | static struct hw_pci dns323_pci __initdata = { | 60 | static struct hw_pci dns323_pci __initdata = { |
61 | .nr_controllers = 1, | 61 | .nr_controllers = 2, |
62 | .swizzle = pci_std_swizzle, | 62 | .swizzle = pci_std_swizzle, |
63 | .setup = orion5x_pci_sys_setup, | 63 | .setup = orion5x_pci_sys_setup, |
64 | .scan = orion5x_pci_sys_scan_bus, | 64 | .scan = orion5x_pci_sys_scan_bus, |
diff --git a/arch/arm/mach-orion5x/kurobox_pro-setup.c b/arch/arm/mach-orion5x/kurobox_pro-setup.c index 88410862feef..f5074b877b7f 100644 --- a/arch/arm/mach-orion5x/kurobox_pro-setup.c +++ b/arch/arm/mach-orion5x/kurobox_pro-setup.c | |||
@@ -138,7 +138,7 @@ static int __init kurobox_pro_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | |||
138 | } | 138 | } |
139 | 139 | ||
140 | static struct hw_pci kurobox_pro_pci __initdata = { | 140 | static struct hw_pci kurobox_pro_pci __initdata = { |
141 | .nr_controllers = 1, | 141 | .nr_controllers = 2, |
142 | .swizzle = pci_std_swizzle, | 142 | .swizzle = pci_std_swizzle, |
143 | .setup = orion5x_pci_sys_setup, | 143 | .setup = orion5x_pci_sys_setup, |
144 | .scan = orion5x_pci_sys_scan_bus, | 144 | .scan = orion5x_pci_sys_scan_bus, |