diff options
Diffstat (limited to 'arch/arm/mach-orion5x/pci.c')
-rw-r--r-- | arch/arm/mach-orion5x/pci.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/arch/arm/mach-orion5x/pci.c b/arch/arm/mach-orion5x/pci.c index fbceecc4b7ec..a7b7d77b1b09 100644 --- a/arch/arm/mach-orion5x/pci.c +++ b/arch/arm/mach-orion5x/pci.c | |||
@@ -541,6 +541,13 @@ static void __devinit rc_pci_fixup(struct pci_dev *dev) | |||
541 | } | 541 | } |
542 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL, PCI_ANY_ID, rc_pci_fixup); | 542 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL, PCI_ANY_ID, rc_pci_fixup); |
543 | 543 | ||
544 | static int orion5x_pci_disabled __initdata; | ||
545 | |||
546 | void __init orion5x_pci_disable(void) | ||
547 | { | ||
548 | orion5x_pci_disabled = 1; | ||
549 | } | ||
550 | |||
544 | void __init orion5x_pci_set_cardbus_mode(void) | 551 | void __init orion5x_pci_set_cardbus_mode(void) |
545 | { | 552 | { |
546 | orion5x_pci_cardbus_mode = 1; | 553 | orion5x_pci_cardbus_mode = 1; |
@@ -553,7 +560,7 @@ int __init orion5x_pci_sys_setup(int nr, struct pci_sys_data *sys) | |||
553 | if (nr == 0) { | 560 | if (nr == 0) { |
554 | orion_pcie_set_local_bus_nr(PCIE_BASE, sys->busnr); | 561 | orion_pcie_set_local_bus_nr(PCIE_BASE, sys->busnr); |
555 | ret = pcie_setup(sys); | 562 | ret = pcie_setup(sys); |
556 | } else if (nr == 1) { | 563 | } else if (nr == 1 && !orion5x_pci_disabled) { |
557 | orion5x_pci_set_bus_nr(sys->busnr); | 564 | orion5x_pci_set_bus_nr(sys->busnr); |
558 | ret = pci_setup(sys); | 565 | ret = pci_setup(sys); |
559 | } | 566 | } |
@@ -567,7 +574,7 @@ struct pci_bus __init *orion5x_pci_sys_scan_bus(int nr, struct pci_sys_data *sys | |||
567 | 574 | ||
568 | if (nr == 0) { | 575 | if (nr == 0) { |
569 | bus = pci_scan_bus(sys->busnr, &pcie_ops, sys); | 576 | bus = pci_scan_bus(sys->busnr, &pcie_ops, sys); |
570 | } else if (nr == 1) { | 577 | } else if (nr == 1 && !orion5x_pci_disabled) { |
571 | bus = pci_scan_bus(sys->busnr, &pci_ops, sys); | 578 | bus = pci_scan_bus(sys->busnr, &pci_ops, sys); |
572 | } else { | 579 | } else { |
573 | bus = NULL; | 580 | bus = NULL; |
@@ -584,7 +591,7 @@ int __init orion5x_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | |||
584 | /* | 591 | /* |
585 | * PCIe endpoint? | 592 | * PCIe endpoint? |
586 | */ | 593 | */ |
587 | if (bus < orion5x_pci_local_bus_nr()) | 594 | if (orion5x_pci_disabled || bus < orion5x_pci_local_bus_nr()) |
588 | return IRQ_ORION5X_PCIE0_INT; | 595 | return IRQ_ORION5X_PCIE0_INT; |
589 | 596 | ||
590 | return -1; | 597 | return -1; |