]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
alpha: switch to GENERIC_PCI_IOMAP
authorMichael S. Tsirkin <mst@redhat.com>
Thu, 24 Nov 2011 18:48:56 +0000 (20:48 +0200)
committerMichael S. Tsirkin <mst@redhat.com>
Mon, 28 Nov 2011 19:13:01 +0000 (21:13 +0200)
alpha copied pci_iomap from generic code 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/alpha/include/asm/io.h
defines ioremap_nocache same as ioremap.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
arch/alpha/Kconfig
arch/alpha/kernel/pci.c

index 3636b11ddff0884f8da569e013c061778fc076de..56a4df952fb0f2e68889229133e38b2b34de4716 100644 (file)
@@ -315,6 +315,7 @@ config ISA_DMA_API
 config PCI
        bool
        depends on !ALPHA_JENSEN
+       select GENERIC_PCI_IOMAP
        default y
        help
          Find out whether you have a PCI motherboard. PCI is the name of a
index c9ab94ee1ca814090249356df8f90b992c59c5c1..f3cae275d3f5e875142c67f89691c891227e2d19 100644 (file)
@@ -508,30 +508,7 @@ sys_pciconfig_iobase(long which, unsigned long bus, unsigned long dfn)
        return -EOPNOTSUPP;
 }
 
-/* Create an __iomem token from a PCI BAR.  Copied from lib/iomap.c with
-   no changes, since we don't want the other things in that object file.  */
-
-void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen)
-{
-       resource_size_t start = pci_resource_start(dev, bar);
-       resource_size_t len = pci_resource_len(dev, bar);
-       unsigned long flags = pci_resource_flags(dev, bar);
-
-       if (!len || !start)
-               return NULL;
-       if (maxlen && len > maxlen)
-               len = maxlen;
-       if (flags & IORESOURCE_IO)
-               return ioport_map(start, len);
-       if (flags & IORESOURCE_MEM) {
-               /* Not checking IORESOURCE_CACHEABLE because alpha does
-                  not distinguish between ioremap and ioremap_nocache.  */
-               return ioremap(start, len);
-       }
-       return NULL;
-}
-
-/* Destroy that token.  Not copied from lib/iomap.c.  */
+/* Destroy an __iomem token.  Not copied from lib/iomap.c.  */
 
 void pci_iounmap(struct pci_dev *dev, void __iomem * addr)
 {
@@ -539,7 +516,6 @@ void pci_iounmap(struct pci_dev *dev, void __iomem * addr)
                iounmap(addr);
 }
 
-EXPORT_SYMBOL(pci_iomap);
 EXPORT_SYMBOL(pci_iounmap);
 
 /* FIXME: Some boxes have multiple ISA bridges! */