diff options
Diffstat (limited to 'arch/arm/mach-orion5x/ts209-setup.c')
-rw-r--r-- | arch/arm/mach-orion5x/ts209-setup.c | 13 |
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 | ||
142 | static int __init qnap_ts209_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 142 | static 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); |