diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/irq.c b/target/linux/ar71xx/files/arch/mips/ar71xx/irq.c index 212ff1299..13d25c43f 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/irq.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/irq.c @@ -158,8 +158,15 @@ static struct irqaction ar724x_pci_irqaction = { static void __init ar724x_pci_irq_init(void) { + u32 t; int i; + t = ar71xx_reset_rr(AR724X_RESET_REG_RESET_MODULE); + if (t & (AR724X_RESET_PCIE | AR724X_RESET_PCIE_PHY | + AR724X_RESET_PCIE_PHY_SERIAL)) { + return; + } + ar71xx_ip2_irq_handler = ar724x_pci_irq_dispatch; ar724x_pci_wr(AR724X_PCI_REG_INT_MASK, 0);