ARM: pci: make pcibios_assign_all_busses use pci_has_flag
authorRob Herring <rob.herring@calxeda.com>
Wed, 29 Jun 2011 15:59:45 +0000 (10:59 -0500)
committerRob Herring <rob.herring@calxeda.com>
Tue, 12 Jul 2011 16:19:28 +0000 (11:19 -0500)
Convert pcibios_assign_all_busses from a define to inline so platforms can
control this setting.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
25 files changed:
arch/arm/include/asm/pci.h
arch/arm/mach-bcmring/include/mach/hardware.h
arch/arm/mach-cns3xxx/include/mach/hardware.h
arch/arm/mach-dove/include/mach/hardware.h
arch/arm/mach-ep93xx/include/mach/hardware.h
arch/arm/mach-footbridge/include/mach/hardware.h
arch/arm/mach-integrator/include/mach/hardware.h
arch/arm/mach-iop13xx/include/mach/hardware.h
arch/arm/mach-iop32x/include/mach/hardware.h
arch/arm/mach-iop33x/include/mach/hardware.h
arch/arm/mach-ixp2000/include/mach/hardware.h
arch/arm/mach-ixp2000/pci.c
arch/arm/mach-ixp23xx/include/mach/hardware.h
arch/arm/mach-ixp23xx/pci.c
arch/arm/mach-ixp4xx/include/mach/hardware.h
arch/arm/mach-kirkwood/include/mach/hardware.h
arch/arm/mach-ks8695/include/mach/hardware.h
arch/arm/mach-mv78xx0/include/mach/hardware.h
arch/arm/mach-orion5x/include/mach/hardware.h
arch/arm/mach-pxa/include/mach/hardware.h
arch/arm/mach-sa1100/include/mach/hardware.h
arch/arm/mach-shark/include/mach/hardware.h
arch/arm/mach-tegra/include/mach/hardware.h
arch/arm/mach-versatile/include/mach/hardware.h
arch/arm/mm/iomap.c

index 92e2a83..cb77e66 100644 (file)
@@ -3,10 +3,16 @@
 
 #ifdef __KERNEL__
 #include <asm-generic/pci-dma-compat.h>
+#include <asm-generic/pci-bridge.h>
 
 #include <asm/mach/pci.h> /* for pci_sys_data */
 #include <mach/hardware.h> /* for PCIBIOS_MIN_* */
 
+static inline int pcibios_assign_all_busses(void)
+{
+       return pci_has_flag(PCI_REASSIGN_ALL_RSRC);
+}
+
 #ifdef CONFIG_PCI_DOMAINS
 static inline int pci_domain_nr(struct pci_bus *bus)
 {
index 8bf3564..ed78aab 100644 (file)
@@ -36,8 +36,6 @@
 #define RAM_SIZE                (CFG_GLOBAL_RAM_SIZE-CFG_GLOBAL_RAM_SIZE_RESERVED)
 #define RAM_BASE                PAGE_OFFSET
 
-#define pcibios_assign_all_busses()    1
-
 /* Macros to make managing spinlocks a bit more controlled in terms of naming. */
 /* See reg_gpio.h, reg_irq.h, arch.c, gpio.c for example usage. */
 #if defined(__KERNEL__)
index 57e0983..82a0d4e 100644 (file)
@@ -17,6 +17,5 @@
 /* macro to get at IO space when running virtually */
 #define PCIBIOS_MIN_IO         0x00000000
 #define PCIBIOS_MIN_MEM                0x00000000
-#define pcibios_assign_all_busses()    1
 
 #endif
index 32b0826..f619fb9 100644 (file)
@@ -11,8 +11,6 @@
 
 #include "dove.h"
 
-#define pcibios_assign_all_busses()    1
-
 #define PCIBIOS_MIN_IO                 0x1000
 #define PCIBIOS_MIN_MEM                        0x01000000
 #define PCIMEM_BASE                    DOVE_PCIE0_MEM_PHYS_BASE
index 5a3ce02..4df8428 100644 (file)
@@ -8,8 +8,6 @@
 #include <mach/ep93xx-regs.h>
 #include <mach/platform.h>
 
-#define pcibios_assign_all_busses()    0
-
 /*
  * The EP93xx has two external crystal oscillators.  To generate the
  * required high-frequency clocks, the processor uses two phase-locked-
index b6fdf23..082e6ce 100644 (file)
@@ -100,8 +100,6 @@ extern unsigned int nw_gpio_read(void);
 extern void nw_cpld_modify(unsigned int mask, unsigned int set);
 #endif
 
-#define pcibios_assign_all_busses()    1
-
 #define PCIBIOS_MIN_IO         0x1000
 #define PCIBIOS_MIN_MEM        0x81000000
 
index 57f51ba..37323ea 100644 (file)
@@ -34,8 +34,6 @@
 
 #define PCIMEM_BASE            PCI_MEMORY_VADDR
 
-#define pcibios_assign_all_busses()    1
-
 #define PCIBIOS_MIN_IO         0x6000
 #define PCIBIOS_MIN_MEM        0x00100000
 
index 8e1d562..ba81e50 100644 (file)
@@ -2,8 +2,6 @@
 #define __ASM_ARCH_HARDWARE_H
 #include <asm/types.h>
 
-#define pcibios_assign_all_busses() 1
-
 #ifndef __ASSEMBLY__
 extern unsigned long iop13xx_pcibios_min_io;
 extern unsigned long iop13xx_pcibios_min_mem;
index d559c4e..e68bf97 100644 (file)
@@ -18,7 +18,6 @@
  * but when we read them, we convert them to virtual addresses. See
  * arch/arm/plat-iop/pci.c.
  */
-#define pcibios_assign_all_busses() 1
 #define PCIBIOS_MIN_IO         0x00000000
 #define PCIBIOS_MIN_MEM                0x00000000
 
index 8c10e43..215065b 100644 (file)
@@ -18,7 +18,6 @@
  * but when we read them, we convert them to virtual addresses.  See
  * arch/arm/mach-iop3xx/iop3xx-pci.c
  */
-#define pcibios_assign_all_busses()    1
 #define PCIBIOS_MIN_IO         0x00000000
 #define PCIBIOS_MIN_MEM                0x00000000
 
index f033de4..6c92008 100644 (file)
@@ -27,8 +27,6 @@
 
 #include "ixp2000-regs.h"      /* Chipset Registers */
 
-#define pcibios_assign_all_busses() 0
-
 /*
  * Platform helper functions
  */
index f797c5f..8888ed9 100644 (file)
@@ -196,6 +196,8 @@ clear_master_aborts(void)
 void __init
 ixp2000_pci_preinit(void)
 {
+       pci_set_flags(0);
+
 #ifndef CONFIG_IXP2000_SUPPORT_BROKEN_PCI_IO
        /*
         * Configure the PCI unit to properly byteswap I/O transactions,
index 57b508b..b8bb781 100644 (file)
@@ -20,8 +20,6 @@
 
 #include "ixp23xx.h"
 
-#define pcibios_assign_all_busses()    0
-
 /*
  * Platform helper functions
  */
index 563819a..72d145a 100644 (file)
@@ -227,6 +227,8 @@ static void __init ixp23xx_pci_common_init(void)
 
 void __init ixp23xx_pci_preinit(void)
 {
+       pci_set_flags(0);
+
        ixp23xx_pci_common_init();
 
        hook_fault_code(16+6, ixp23xx_pci_abort_handler, SIGBUS, 0,
index 8138371..163e506 100644 (file)
@@ -28,8 +28,6 @@
 
 #define ARCH_HAS_DMA_SET_COHERENT_MASK
 
-#define pcibios_assign_all_busses()    1
-
 /* Register locations and bits */
 #include "ixp4xx-regs.h"
 
index cde8528..31b81fe 100644 (file)
@@ -11,9 +11,6 @@
 
 #include "kirkwood.h"
 
-#define pcibios_assign_all_busses()    1
-
-#define PCIBIOS_MIN_IO                 0x00001000
 #define PCIBIOS_MIN_MEM                        0x01000000
 #define PCIMEM_BASE                    KIRKWOOD_PCIE_MEM_PHYS_BASE /* mem base for VGA */
 
index e0f911d..a46be88 100644 (file)
@@ -46,8 +46,6 @@
 /*
  * PCI support
  */
-#define pcibios_assign_all_busses()    1
-
 #define PCIBIOS_MIN_IO         0
 #define PCIBIOS_MIN_MEM                0
 
index 5d88755..c76b93f 100644 (file)
@@ -11,8 +11,6 @@
 
 #include "mv78xx0.h"
 
-#define pcibios_assign_all_busses()    1
-
 #define PCIBIOS_MIN_IO                 0x00001000
 #define PCIBIOS_MIN_MEM                        0x01000000
 #define PCIMEM_BASE                    MV78XX0_PCIE_MEM_PHYS_BASE /* mem base for VGA */
index e51aaf4..a42b743 100644 (file)
@@ -11,8 +11,6 @@
 
 #include "orion5x.h"
 
-#define pcibios_assign_all_busses()    1
-
 #define PCIBIOS_MIN_IO         0x00001000
 #define PCIBIOS_MIN_MEM                0x01000000
 #define PCIMEM_BASE            ORION5X_PCIE_MEM_PHYS_BASE
index 6957ba5..b4ea392 100644 (file)
@@ -339,7 +339,6 @@ extern unsigned long get_clock_tick_rate(void);
 #if defined(CONFIG_MACH_ARMCORE) && defined(CONFIG_PCI)
 #define PCIBIOS_MIN_IO         0
 #define PCIBIOS_MIN_MEM                0
-#define pcibios_assign_all_busses()    1
 #define ARCH_HAS_DMA_SET_COHERENT_MASK
 #endif
 
index 967ae76..5946af2 100644 (file)
@@ -79,7 +79,6 @@ static inline unsigned long get_clock_tick_rate(void)
 #if defined(CONFIG_ARCH_SA1100) && defined(CONFIG_PCI)
 #define PCIBIOS_MIN_IO         0
 #define PCIBIOS_MIN_MEM                0
-#define pcibios_assign_all_busses()    1
 #define HAVE_ARCH_PCI_SET_DMA_MASK     1
 #endif
 
index 94d84b2..24639ce 100644 (file)
@@ -12,8 +12,6 @@
 
 #define UNCACHEABLE_ADDR        0xdf010000
 
-#define pcibios_assign_all_busses()     1
-
 #define PCIBIOS_MIN_IO          0x6000
 #define PCIBIOS_MIN_MEM         0x50000000
 #define PCIMEM_BASE            0xe8000000
index 56e43b3..84c2658 100644 (file)
@@ -23,6 +23,5 @@
 
 #define PCIBIOS_MIN_IO                 0x1000
 #define PCIBIOS_MIN_MEM                        0
-#define pcibios_assign_all_busses()    1
 
 #endif
index 6911e1f..8f60e94 100644 (file)
@@ -34,8 +34,6 @@
 #define PCIBIOS_MIN_IO                 0x44000000
 #define PCIBIOS_MIN_MEM                        0x50000000
 
-#define pcibios_assign_all_busses()     1
-
 /* macro to get at IO space when running virtually */
 #define IO_ADDRESS(x)          (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + 0xf0000000)
 
index ffad039..ad41414 100644 (file)
@@ -8,6 +8,7 @@
 #include <linux/pci.h>
 #include <linux/ioport.h>
 #include <linux/io.h>
+#include <asm/pci.h>
 
 #ifdef __io
 void __iomem *ioport_map(unsigned long port, unsigned int nr)
@@ -23,6 +24,9 @@ EXPORT_SYMBOL(ioport_unmap);
 #endif
 
 #ifdef CONFIG_PCI
+unsigned int pci_flags = PCI_REASSIGN_ALL_RSRC;
+EXPORT_SYMBOL(pci_flags);
+
 void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen)
 {
        resource_size_t start = pci_resource_start(dev, bar);