arm: switch to GENERIC_PCI_IOMAP
arm 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. Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
f2971c4c31
commit
e5bfb72ce2
|
@ -30,6 +30,7 @@ config ARM
|
||||||
select HAVE_SPARSE_IRQ
|
select HAVE_SPARSE_IRQ
|
||||||
select GENERIC_IRQ_SHOW
|
select GENERIC_IRQ_SHOW
|
||||||
select CPU_PM if (SUSPEND || CPU_IDLE)
|
select CPU_PM if (SUSPEND || CPU_IDLE)
|
||||||
|
select GENERIC_PCI_IOMAP
|
||||||
help
|
help
|
||||||
The ARM series is a line of low-power-consumption RISC chip designs
|
The ARM series is a line of low-power-consumption RISC chip designs
|
||||||
licensed by ARM Ltd and targeted at embedded applications and
|
licensed by ARM Ltd and targeted at embedded applications and
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include <asm/byteorder.h>
|
#include <asm/byteorder.h>
|
||||||
#include <asm/memory.h>
|
#include <asm/memory.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
|
#include <asm-generic/pci_iomap.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ISA I/O bus memory addresses are 1:1 with the physical address.
|
* ISA I/O bus memory addresses are 1:1 with the physical address.
|
||||||
|
@ -306,7 +307,6 @@ extern void ioport_unmap(void __iomem *addr);
|
||||||
|
|
||||||
struct pci_dev;
|
struct pci_dev;
|
||||||
|
|
||||||
extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen);
|
|
||||||
extern void pci_iounmap(struct pci_dev *dev, void __iomem *addr);
|
extern void pci_iounmap(struct pci_dev *dev, void __iomem *addr);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -35,27 +35,6 @@ EXPORT_SYMBOL(pcibios_min_mem);
|
||||||
unsigned int pci_flags = PCI_REASSIGN_ALL_RSRC;
|
unsigned int pci_flags = PCI_REASSIGN_ALL_RSRC;
|
||||||
EXPORT_SYMBOL(pci_flags);
|
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);
|
|
||||||
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) {
|
|
||||||
if (flags & IORESOURCE_CACHEABLE)
|
|
||||||
return ioremap(start, len);
|
|
||||||
return ioremap_nocache(start, len);
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(pci_iomap);
|
|
||||||
|
|
||||||
void pci_iounmap(struct pci_dev *dev, void __iomem *addr)
|
void pci_iounmap(struct pci_dev *dev, void __iomem *addr)
|
||||||
{
|
{
|
||||||
if ((unsigned long)addr >= VMALLOC_START &&
|
if ((unsigned long)addr >= VMALLOC_START &&
|
||||||
|
|
Loading…
Reference in New Issue