aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-orion5x/ts209-setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-orion5x/ts209-setup.c')
-rw-r--r--arch/arm/mach-orion5x/ts209-setup.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/arch/arm/mach-orion5x/ts209-setup.c b/arch/arm/mach-orion5x/ts209-setup.c
index 6f93668b0ed5..9afb41ee6e07 100644
--- a/arch/arm/mach-orion5x/ts209-setup.c
+++ b/arch/arm/mach-orion5x/ts209-setup.c
@@ -141,14 +141,17 @@ void __init qnap_ts209_pci_preinit(void)
141 141
142static int __init qnap_ts209_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) 142static int __init qnap_ts209_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
143{ 143{
144 int irq;
145
144 /* 146 /*
145 * PCIE IRQ is connected internally (not GPIO) 147 * Check for devices with hard-wired IRQs.
146 */ 148 */
147 if (dev->bus->number == orion5x_pcie_local_bus_nr()) 149 irq = orion5x_pci_map_irq(dev, slot, pin);
148 return IRQ_ORION5X_PCIE0_INT; 150 if (irq != -1)
151 return irq;
149 152
150 /* 153 /*
151 * PCI IRQs are connected via GPIOs 154 * PCI IRQs are connected via GPIOs.
152 */ 155 */
153 switch (slot - QNAP_TS209_PCI_SLOT0_OFFS) { 156 switch (slot - QNAP_TS209_PCI_SLOT0_OFFS) {
154 case 0: 157 case 0:
@@ -372,7 +375,7 @@ static void __init qnap_ts209_init(void)
372 QNAP_TS209_NOR_BOOT_SIZE); 375 QNAP_TS209_NOR_BOOT_SIZE);
373 376
374 /* 377 /*
375 * Open a special address decode windows for the PCIE WA. 378 * Open a special address decode windows for the PCIe WA.
376 */ 379 */
377 orion5x_setup_pcie_wa_win(ORION5X_PCIE_WA_PHYS_BASE, 380 orion5x_setup_pcie_wa_win(ORION5X_PCIE_WA_PHYS_BASE,
378 ORION5X_PCIE_WA_SIZE); 381 ORION5X_PCIE_WA_SIZE);