mirror of
https://github.com/joel16/android_kernel_sony_msm8994.git
synced 2024-11-27 06:01:12 +00:00
lib: add NO_GENERIC_PCI_IOPORT_MAP
Some architectures need to override the way IO port mapping is done on PCI devices. Supply a generic macro that calls ioport_map, and make it possible for architectures to override. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
parent
0a96265754
commit
b923650b84
@ -15,6 +15,16 @@ struct pci_dev;
|
|||||||
#ifdef CONFIG_PCI
|
#ifdef CONFIG_PCI
|
||||||
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
|
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
|
||||||
extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
|
extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
|
||||||
|
/* Create a virtual mapping cookie for a port on a given PCI device.
|
||||||
|
* Do not call this directly, it exists to make it easier for architectures
|
||||||
|
* to override */
|
||||||
|
#ifdef CONFIG_NO_GENERIC_PCI_IOPORT_MAP
|
||||||
|
extern void __iomem *__pci_ioport_map(struct pci_dev *dev, unsigned long port,
|
||||||
|
unsigned int nr);
|
||||||
|
#else
|
||||||
|
#define __pci_ioport_map(dev, port, nr) ioport_map((port), (nr))
|
||||||
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
static inline void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max)
|
static inline void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max)
|
||||||
{
|
{
|
||||||
|
@ -19,6 +19,9 @@ config RATIONAL
|
|||||||
config GENERIC_FIND_FIRST_BIT
|
config GENERIC_FIND_FIRST_BIT
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
config NO_GENERIC_PCI_IOPORT_MAP
|
||||||
|
bool
|
||||||
|
|
||||||
config GENERIC_PCI_IOMAP
|
config GENERIC_PCI_IOMAP
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen)
|
|||||||
if (maxlen && len > maxlen)
|
if (maxlen && len > maxlen)
|
||||||
len = maxlen;
|
len = maxlen;
|
||||||
if (flags & IORESOURCE_IO)
|
if (flags & IORESOURCE_IO)
|
||||||
return ioport_map(start, len);
|
return __pci_ioport_map(dev, start, len);
|
||||||
if (flags & IORESOURCE_MEM) {
|
if (flags & IORESOURCE_MEM) {
|
||||||
if (flags & IORESOURCE_CACHEABLE)
|
if (flags & IORESOURCE_CACHEABLE)
|
||||||
return ioremap(start, len);
|
return ioremap(start, len);
|
||||||
|
Loading…
Reference in New Issue
Block a user