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

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

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
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -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.
+0 −1
Original line number Original line Diff line number Diff line
@@ -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)
{
{
}
}
+1 −1
Original line number Original line Diff line number Diff line
@@ -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
+0 −31
Original line number Original line Diff line number Diff line
/* 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);