diff options
Diffstat (limited to 'arch/arm/mach-orion5x')
-rw-r--r-- | arch/arm/mach-orion5x/Kconfig | 18 | ||||
-rw-r--r-- | arch/arm/mach-orion5x/pci.c | 12 |
2 files changed, 27 insertions, 3 deletions
diff --git a/arch/arm/mach-orion5x/Kconfig b/arch/arm/mach-orion5x/Kconfig index bf833b51931d..0044b2823710 100644 --- a/arch/arm/mach-orion5x/Kconfig +++ b/arch/arm/mach-orion5x/Kconfig @@ -7,6 +7,7 @@ menuconfig ARCH_ORION5X select GPIOLIB select MVEBU_MBUS select FORCE_PCI + select PCI_QUIRKS select PHYLIB if NETDEVICES select PLAT_ORION_LEGACY help @@ -30,6 +31,7 @@ config ARCH_ORION5X_DT config MACH_DB88F5281 bool "Marvell Orion-2 Development Board" select I2C_BOARDINFO if I2C + depends on ATAGS && UNUSED_BOARD_FILES help Say 'Y' here if you want your kernel to support the Marvell Orion-2 (88F5281) Development Board @@ -37,6 +39,7 @@ config MACH_DB88F5281 config MACH_RD88F5182 bool "Marvell Orion-NAS Reference Design" select I2C_BOARDINFO if I2C + depends on ATAGS && UNUSED_BOARD_FILES help Say 'Y' here if you want your kernel to support the Marvell Orion-NAS (88F5182) RD2 @@ -52,6 +55,7 @@ config MACH_RD88F5182_DT config MACH_KUROBOX_PRO bool "KuroBox Pro" select I2C_BOARDINFO if I2C + depends on ATAGS help Say 'Y' here if you want your kernel to support the KuroBox Pro platform. @@ -59,24 +63,28 @@ config MACH_KUROBOX_PRO config MACH_DNS323 bool "D-Link DNS-323" select I2C_BOARDINFO if I2C + depends on ATAGS help Say 'Y' here if you want your kernel to support the D-Link DNS-323 platform. config MACH_TS209 bool "QNAP TS-109/TS-209" + depends on ATAGS help Say 'Y' here if you want your kernel to support the QNAP TS-109/TS-209 platform. config MACH_TERASTATION_PRO2 bool "Buffalo Terastation Pro II/Live" + depends on ATAGS help Say 'Y' here if you want your kernel to support the Buffalo Terastation Pro II/Live platform. config MACH_LINKSTATION_PRO bool "Buffalo Linkstation Pro/Live" + depends on ATAGS select I2C_BOARDINFO if I2C help Say 'Y' here if you want your kernel to support the @@ -92,6 +100,7 @@ config MACH_LINKSTATION_MINI config MACH_LINKSTATION_LS_HGL bool "Buffalo Linkstation LS-HGL" + depends on ATAGS && UNUSED_BOARD_FILES select I2C_BOARDINFO if I2C help Say 'Y' here if you want your kernel to support the @@ -99,24 +108,28 @@ config MACH_LINKSTATION_LS_HGL config MACH_TS409 bool "QNAP TS-409" + depends on ATAGS help Say 'Y' here if you want your kernel to support the QNAP TS-409 platform. config MACH_WRT350N_V2 bool "Linksys WRT350N v2" + depends on ATAGS && UNUSED_BOARD_FILES help Say 'Y' here if you want your kernel to support the Linksys WRT350N v2 platform. config MACH_TS78XX bool "Technologic Systems TS-78xx" + depends on ATAGS help Say 'Y' here if you want your kernel to support the Technologic Systems TS-78xx platform. config MACH_MV2120 bool "HP Media Vault mv2120" + depends on ATAGS help Say 'Y' here if you want your kernel to support the HP Media Vault mv2120 or mv5100. @@ -130,6 +143,7 @@ config MACH_D2NET_DT config MACH_NET2BIG bool "LaCie 2Big Network" + depends on ATAGS select I2C_BOARDINFO if I2C help Say 'Y' here if you want your kernel to support the @@ -144,24 +158,28 @@ config MACH_MSS2_DT config MACH_WNR854T bool "Netgear WNR854T" + depends on ATAGS && UNUSED_BOARD_FILES help Say 'Y' here if you want your kernel to support the Netgear WNR854T platform. config MACH_RD88F5181L_GE bool "Marvell Orion-VoIP GE Reference Design" + depends on ATAGS && UNUSED_BOARD_FILES help Say 'Y' here if you want your kernel to support the Marvell Orion-VoIP GE (88F5181L) RD. config MACH_RD88F5181L_FXO bool "Marvell Orion-VoIP FXO Reference Design" + depends on ATAGS && UNUSED_BOARD_FILES help Say 'Y' here if you want your kernel to support the Marvell Orion-VoIP FXO (88F5181L) RD. config MACH_RD88F6183AP_GE bool "Marvell Orion-1-90 AP GE Reference Design" + depends on ATAGS && UNUSED_BOARD_FILES help Say 'Y' here if you want your kernel to support the Marvell Orion-1-90 (88F6183) AP GE RD. diff --git a/arch/arm/mach-orion5x/pci.c b/arch/arm/mach-orion5x/pci.c index 997fe39a86da..888fdc9099c5 100644 --- a/arch/arm/mach-orion5x/pci.c +++ b/arch/arm/mach-orion5x/pci.c @@ -512,14 +512,20 @@ static int __init pci_setup(struct pci_sys_data *sys) /***************************************************************************** * General PCIe + PCI ****************************************************************************/ + +/* + * The root complex has a hardwired class of PCI_CLASS_MEMORY_OTHER, when it + * is operating as a root complex this needs to be switched to + * PCI_CLASS_BRIDGE_HOST or Linux will errantly try to process the BAR's on + * the device. Decoding setup is handled by the orion code. + */ static void rc_pci_fixup(struct pci_dev *dev) { - /* - * Prevent enumeration of root complex. - */ if (dev->bus->parent == NULL && dev->devfn == 0) { int i; + dev->class &= 0xff; + dev->class |= PCI_CLASS_BRIDGE_HOST << 8; for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) { dev->resource[i].start = 0; dev->resource[i].end = 0; |