Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f2971c4c authored by Michael S. Tsirkin's avatar Michael S. Tsirkin
Browse files

alpha: switch to GENERIC_PCI_IOMAP



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: default avatarMichael S. Tsirkin <mst@redhat.com>
parent 66eab4df
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -315,6 +315,7 @@ config ISA_DMA_API
config PCI
config PCI
	bool
	bool
	depends on !ALPHA_JENSEN
	depends on !ALPHA_JENSEN
	select GENERIC_PCI_IOMAP
	default y
	default y
	help
	help
	  Find out whether you have a PCI motherboard. PCI is the name of a
	  Find out whether you have a PCI motherboard. PCI is the name of a
+1 −25
Original line number Original line Diff line number Diff line
@@ -508,30 +508,7 @@ sys_pciconfig_iobase(long which, unsigned long bus, unsigned long dfn)
	return -EOPNOTSUPP;
	return -EOPNOTSUPP;
}
}


/* Create an __iomem token from a PCI BAR.  Copied from lib/iomap.c with
/* Destroy an __iomem token.  Not copied from lib/iomap.c.  */
   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.  */


void pci_iounmap(struct pci_dev *dev, void __iomem * addr)
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);
		iounmap(addr);
}
}


EXPORT_SYMBOL(pci_iomap);
EXPORT_SYMBOL(pci_iounmap);
EXPORT_SYMBOL(pci_iounmap);


/* FIXME: Some boxes have multiple ISA bridges! */
/* FIXME: Some boxes have multiple ISA bridges! */