diff options
Diffstat (limited to 'lib/iomap.c')
| -rw-r--r-- | lib/iomap.c | 44 | 
1 files changed, 7 insertions, 37 deletions
diff --git a/lib/iomap.c b/lib/iomap.c index d3222938515..fc3dcb4b238 100644 --- a/lib/iomap.c +++ b/lib/iomap.c @@ -6,7 +6,7 @@  #include <linux/pci.h>  #include <linux/io.h> -#include <linux/module.h> +#include <linux/export.h>  /*   * Read/write from/to an (offsettable) iomem cookie. It might be a PIO @@ -224,6 +224,7 @@ EXPORT_SYMBOL(iowrite8_rep);  EXPORT_SYMBOL(iowrite16_rep);  EXPORT_SYMBOL(iowrite32_rep); +#ifdef CONFIG_HAS_IOPORT_MAP  /* Create a virtual mapping cookie for an IO port range */  void __iomem *ioport_map(unsigned long port, unsigned int nr)  { @@ -238,45 +239,14 @@ void ioport_unmap(void __iomem *addr)  }  EXPORT_SYMBOL(ioport_map);  EXPORT_SYMBOL(ioport_unmap); +#endif /* CONFIG_HAS_IOPORT_MAP */ -/** - * pci_iomap - create a virtual mapping cookie for a PCI BAR - * @dev: PCI device that owns the BAR - * @bar: BAR number - * @maxlen: length of the memory to map - * - * Using this function you will get a __iomem address to your device BAR. - * You can access it using ioread*() and iowrite*(). These functions hide - * the details if this is a MMIO or PIO address space and will just do what - * you expect from them in the correct way. - * - * @maxlen specifies the maximum length to map. If you want to get access to - * the complete BAR without checking for its length first, pass %0 here. - * */ -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); -	} -	/* What? */ -	return NULL; -} - +#ifdef CONFIG_PCI +/* Hide the details if this is a MMIO or PIO address space and just do what + * you expect in the correct way. */  void pci_iounmap(struct pci_dev *dev, void __iomem * addr)  {  	IO_COND(addr, /* nothing */, iounmap(addr));  } -EXPORT_SYMBOL(pci_iomap);  EXPORT_SYMBOL(pci_iounmap); +#endif /* CONFIG_PCI */  | 
