diff options
author | Michael S. Tsirkin <mst@redhat.com> | 2011-11-29 20:42:56 +0200 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2011-12-04 16:00:10 +0200 |
commit | 845501213033d0058945776349f15502823359d8 (patch) | |
tree | 549adde58442e159de0d782c48608a98a21bef3a | |
parent | 8593dd375ad10045e69b7b43fc1d885929aebbd5 (diff) |
tile: switch to GENERIC_PCI_IOMAP
tile now has working stubs for ioport_map and ioremap
such that the generic pci_iomap will DTRT: cast to
pointer on memory and return NULL and log message on IO map.
Switch it over to GENERIC_PCI_IOMAP.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r-- | arch/tile/Kconfig | 1 | ||||
-rw-r--r-- | arch/tile/include/asm/pci.h | 2 | ||||
-rw-r--r-- | arch/tile/kernel/pci.c | 21 |
3 files changed, 2 insertions, 22 deletions
diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig index 70a0de46cd1..11270ca22c0 100644 --- a/arch/tile/Kconfig +++ b/arch/tile/Kconfig @@ -321,6 +321,7 @@ config PCI bool "PCI support" default y select PCI_DOMAINS + select GENERIC_PCI_IOMAP ---help--- Enable PCI root complex support, so PCIe endpoint devices can be attached to the Tile chip. Many, but not all, PCI devices diff --git a/arch/tile/include/asm/pci.h b/arch/tile/include/asm/pci.h index 7f03cefed1b..1d25fea42e5 100644 --- a/arch/tile/include/asm/pci.h +++ b/arch/tile/include/asm/pci.h @@ -16,6 +16,7 @@ #define _ASM_TILE_PCI_H #include <linux/pci.h> +#include <asm-generic/pci_iomap.h> /* * Structure of a PCI controller (host bridge) @@ -49,7 +50,6 @@ struct pci_controller { int __devinit tile_pci_init(void); int __devinit pcibios_init(void); -void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max); static inline void pci_iounmap(struct pci_dev *dev, void __iomem *addr) {} void __devinit pcibios_fixup_bus(struct pci_bus *bus); diff --git a/arch/tile/kernel/pci.c b/arch/tile/kernel/pci.c index 2a8014cb1ff..1b6244e69de 100644 --- a/arch/tile/kernel/pci.c +++ b/arch/tile/kernel/pci.c @@ -465,27 +465,6 @@ int pcibios_enable_device(struct pci_dev *dev, int mask) return 0; } -void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max) -{ - unsigned long start = pci_resource_start(dev, bar); - unsigned long len = pci_resource_len(dev, bar); - unsigned long flags = pci_resource_flags(dev, bar); - - if (!len) - return NULL; - if (max && len > max) - len = max; - - if (!(flags & IORESOURCE_MEM)) { - pr_info("PCI: Trying to map invalid resource %#lx\n", flags); - start = 0; - } - - return (void __iomem *)start; -} -EXPORT_SYMBOL(pci_iomap); - - /**************************************************************** * * Tile PCI config space read/write routines |