Commit 34f1bdee authored by Michael S. Tsirkin's avatar Michael S. Tsirkin

mn10300: switch to GENERIC_PCI_IOMAP

The pci_iomap variant that arch/mn10300/unit-asb2305/pci-iomap.c
uses differs from the generic one in that it does
not use ioremap_nocache for PCI addresses.
However, it turns out that PCI addresses are
automatically noncached, so switching to ioremap_nocache
and to the generic implementation is safe.
Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
parent 2ebf5d0d
...@@ -252,6 +252,7 @@ config PCI ...@@ -252,6 +252,7 @@ config PCI
bool "Use PCI" bool "Use PCI"
depends on MN10300_UNIT_ASB2305 depends on MN10300_UNIT_ASB2305
default y default y
select GENERIC_PCI_IOMAP
help help
Some systems (such as the ASB2305) have PCI onboard. If you have one Some systems (such as the ASB2305) have PCI onboard. If you have one
of these boards and you wish to use the PCI facilities, say Y here. of these boards and you wish to use the PCI facilities, say Y here.
......
...@@ -229,7 +229,6 @@ static inline void outsl(unsigned long addr, const void *buffer, int count) ...@@ -229,7 +229,6 @@ static inline void outsl(unsigned long addr, const void *buffer, int count)
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */ /* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
struct pci_dev; struct pci_dev;
extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
static inline void pci_iounmap(struct pci_dev *dev, void __iomem *p) static inline void pci_iounmap(struct pci_dev *dev, void __iomem *p)
{ {
} }
......
...@@ -5,4 +5,4 @@ ...@@ -5,4 +5,4 @@
############################################################################### ###############################################################################
obj-y := unit-init.o leds.o obj-y := unit-init.o leds.o
obj-$(CONFIG_PCI) += pci.o pci-asb2305.o pci-irq.o pci-iomap.o obj-$(CONFIG_PCI) += pci.o pci-asb2305.o pci-irq.o
/* ASB2305 PCI I/O mapping handler
*
* Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
* Written by David Howells (dhowells@redhat.com)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public Licence
* as published by the Free Software Foundation; either version
* 2 of the Licence, or (at your option) any later version.
*/
#include <linux/pci.h>
#include <linux/module.h>
/*
* Create a virtual mapping cookie for a PCI BAR (memory or IO)
*/
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 ((flags & IORESOURCE_IO) || (flags & IORESOURCE_MEM))
return (void __iomem *) start;
return NULL;
}
EXPORT_SYMBOL(pci_iomap);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment