summaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2010-03-05 20:29:29 +0000
committerGabor Juhos <juhosg@openwrt.org>2010-03-05 20:29:29 +0000
commit97c35a7ddee72865cf4a304af19fff598ae537c9 (patch)
treefd672a96e71b1b1c0dbd6a77ceab70ba72704b22 /target
parent52f03512dc79ec4f2edda26f604ea74045eee1a9 (diff)
downloadmaster-31e0f0ae-97c35a7ddee72865cf4a304af19fff598ae537c9.tar.gz
master-31e0f0ae-97c35a7ddee72865cf4a304af19fff598ae537c9.tar.bz2
master-31e0f0ae-97c35a7ddee72865cf4a304af19fff598ae537c9.zip
ar71xx: don't init PCI irqs on the AR7240 if the PCIe subsystem are in reset
SVN-Revision: 20007
Diffstat (limited to 'target')
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/irq.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/irq.c b/target/linux/ar71xx/files/arch/mips/ar71xx/irq.c
index 212ff12997..13d25c43fd 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);