microblaze: switch to GENERIC_PCI_IOMAP
microblaze 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/microblaze/include/asm/io.h defines ioremap_nocache same as ioremap. Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Родитель
e5bfb72ce2
Коммит
1b34d16073
|
@ -17,6 +17,7 @@ config MICROBLAZE
|
||||||
select HAVE_GENERIC_HARDIRQS
|
select HAVE_GENERIC_HARDIRQS
|
||||||
select GENERIC_IRQ_PROBE
|
select GENERIC_IRQ_PROBE
|
||||||
select GENERIC_IRQ_SHOW
|
select GENERIC_IRQ_SHOW
|
||||||
|
select GENERIC_PCI_IOMAP
|
||||||
|
|
||||||
config SWAP
|
config SWAP
|
||||||
def_bool n
|
def_bool n
|
||||||
|
|
|
@ -10,25 +10,6 @@
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/pci-bridge.h>
|
#include <asm/pci-bridge.h>
|
||||||
|
|
||||||
void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max)
|
|
||||||
{
|
|
||||||
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)
|
|
||||||
return NULL;
|
|
||||||
if (max && len > max)
|
|
||||||
len = max;
|
|
||||||
if (flags & IORESOURCE_IO)
|
|
||||||
return ioport_map(start, len);
|
|
||||||
if (flags & IORESOURCE_MEM)
|
|
||||||
return ioremap(start, len);
|
|
||||||
/* What? */
|
|
||||||
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 (isa_vaddr_is_ioport(addr))
|
if (isa_vaddr_is_ioport(addr))
|
||||||
|
|
Загрузка…
Ссылка в новой задаче