ar71xx: don't register PCI controller on AR934x if PCIE_RC bit is not set
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 5 Dec 2011 18:21:15 +0000 (18:21 +0000)
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 5 Dec 2011 18:21:15 +0000 (18:21 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29456 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/ar71xx/files/arch/mips/ar71xx/pci.c

index 8850c0b..f3c6452 100644 (file)
@@ -68,6 +68,7 @@ int __init pcibios_map_irq(const struct pci_dev *dev, uint8_t slot, uint8_t pin)
 
 int __init ar71xx_pci_init(unsigned nr_irqs, struct ar71xx_pci_irq *map)
 {
+       u32 t;
        int ret = 0;
 
        switch (ar71xx_soc) {
@@ -86,9 +87,13 @@ int __init ar71xx_pci_init(unsigned nr_irqs, struct ar71xx_pci_irq *map)
 
        case AR71XX_SOC_AR9342:
        case AR71XX_SOC_AR9344:
-               ret = ar724x_pcibios_init(AR934X_IP2_IRQ_PCIE);
-               break;
+               t = ar71xx_reset_rr(AR934X_RESET_REG_BOOTSTRAP);
+               if (t & AR934X_BOOTSTRAP_PCIE_RC) {
+                       ret = ar724x_pcibios_init(AR934X_IP2_IRQ_PCIE);
+                       break;
+               }
 
+               /* fall through */
        default:
                return 0;
        }
This page took 0.022402 seconds and 4 git commands to generate.