aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2011-11-24 14:06:41 -0500
committerMichael S. Tsirkin <mst@redhat.com>2011-11-28 14:13:18 -0500
commit335b8cf7c383c5589d29addd7c4149741a4014b9 (patch)
tree3c33637463d5e932bcf8bfcb9fd88f8ffe082518 /arch
parent629a858160751b670e1376dab4788f0c84138cc6 (diff)
powerpc: switch to GENERIC_PCI_IOMAP
powerpc copied pci_iomap from generic code, probably to avoid pulling the rest of iomap.c in. Since that's in a separate file now, we can reuse the common implementation. The only difference is handling of nocache flag, that turns out to be done correctly by the generic code since arch/powerpc/include/asm/io.h defines ioremap_nocache same as ioremap. Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/Kconfig1
-rw-r--r--arch/powerpc/kernel/iomap.c19
2 files changed, 1 insertions, 19 deletions
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 951e18f5335b..6ffe3df3e57c 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -710,6 +710,7 @@ config PCI
710 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx 710 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
711 default PCI_QSPAN if !4xx && !CPM2 && 8xx 711 default PCI_QSPAN if !4xx && !CPM2 && 8xx
712 select ARCH_SUPPORTS_MSI 712 select ARCH_SUPPORTS_MSI
713 select GENERIC_PCI_IOMAP
713 help 714 help
714 Find out whether your system includes a PCI bus. PCI is the name of 715 Find out whether your system includes a PCI bus. PCI is the name of
715 a bus system, i.e. the way the CPU talks to the other stuff inside 716 a bus system, i.e. the way the CPU talks to the other stuff inside
diff --git a/arch/powerpc/kernel/iomap.c b/arch/powerpc/kernel/iomap.c
index 262791807397..97a3715ac8bd 100644
--- a/arch/powerpc/kernel/iomap.c
+++ b/arch/powerpc/kernel/iomap.c
@@ -119,24 +119,6 @@ EXPORT_SYMBOL(ioport_map);
119EXPORT_SYMBOL(ioport_unmap); 119EXPORT_SYMBOL(ioport_unmap);
120 120
121#ifdef CONFIG_PCI 121#ifdef CONFIG_PCI
122void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max)
123{
124 resource_size_t start = pci_resource_start(dev, bar);
125 resource_size_t len = pci_resource_len(dev, bar);
126 unsigned long flags = pci_resource_flags(dev, bar);
127
128 if (!len)
129 return NULL;
130 if (max && len > max)
131 len = max;
132 if (flags & IORESOURCE_IO)
133 return ioport_map(start, len);
134 if (flags & IORESOURCE_MEM)
135 return ioremap(start, len);
136 /* What? */
137 return NULL;
138}
139
140void pci_iounmap(struct pci_dev *dev, void __iomem *addr) 122void pci_iounmap(struct pci_dev *dev, void __iomem *addr)
141{ 123{
142 if (isa_vaddr_is_ioport(addr)) 124 if (isa_vaddr_is_ioport(addr))
@@ -146,6 +128,5 @@ void pci_iounmap(struct pci_dev *dev, void __iomem *addr)
146 iounmap(addr); 128 iounmap(addr);
147} 129}
148 130
149EXPORT_SYMBOL(pci_iomap);
150EXPORT_SYMBOL(pci_iounmap); 131EXPORT_SYMBOL(pci_iounmap);
151#endif /* CONFIG_PCI */ 132#endif /* CONFIG_PCI */