Message ID | 54aba7d0694e98b9103ca278486485598086b2be.1322163031.git.mst@redhat.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
On Thu, Nov 24, 2011 at 10:19:54PM +0200, Michael S. Tsirkin wrote: > powerpc 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/powerpc/include/asm/io.h > defines ioremap_nocache same as ioremap. > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Sorry to nag, any ACKs/NACKs on the powerpc changes? I intend to send this to Linus if there are no objections. Thanks! > --- > arch/powerpc/Kconfig | 1 + > arch/powerpc/kernel/iomap.c | 19 ------------------- > 2 files changed, 1 insertions(+), 19 deletions(-) > > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > index 951e18f..6ffe3df 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -710,6 +710,7 @@ config PCI > default PCI_PERMEDIA if !4xx && !CPM2 && !8xx > default PCI_QSPAN if !4xx && !CPM2 && 8xx > select ARCH_SUPPORTS_MSI > + select GENERIC_PCI_IOMAP > help > Find out whether your system includes a PCI bus. PCI is the name of > a bus system, i.e. the way the CPU talks to the other stuff inside > diff --git a/arch/powerpc/kernel/iomap.c b/arch/powerpc/kernel/iomap.c > index 2627918..97a3715 100644 > --- a/arch/powerpc/kernel/iomap.c > +++ b/arch/powerpc/kernel/iomap.c > @@ -119,24 +119,6 @@ EXPORT_SYMBOL(ioport_map); > EXPORT_SYMBOL(ioport_unmap); > > #ifdef CONFIG_PCI > -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; > -} > - > void pci_iounmap(struct pci_dev *dev, void __iomem *addr) > { > if (isa_vaddr_is_ioport(addr)) > @@ -146,6 +128,5 @@ void pci_iounmap(struct pci_dev *dev, void __iomem *addr) > iounmap(addr); > } > > -EXPORT_SYMBOL(pci_iomap); > EXPORT_SYMBOL(pci_iounmap); > #endif /* CONFIG_PCI */ > -- > 1.7.5.53.gc233e
On Sun, 2011-12-04 at 12:48 +0200, Michael S. Tsirkin wrote: > On Thu, Nov 24, 2011 at 10:19:54PM +0200, Michael S. Tsirkin wrote: > > powerpc 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/powerpc/include/asm/io.h > > defines ioremap_nocache same as ioremap. > > > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > > > Sorry to nag, any ACKs/NACKs on the powerpc changes? > I intend to send this to Linus if there are no > objections. Thanks! Ah sorry, forgot about that. Do you have a git tree I can pull to do quick test ? No objection in principle. Cheers, Ben. > > --- > > arch/powerpc/Kconfig | 1 + > > arch/powerpc/kernel/iomap.c | 19 ------------------- > > 2 files changed, 1 insertions(+), 19 deletions(-) > > > > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > > index 951e18f..6ffe3df 100644 > > --- a/arch/powerpc/Kconfig > > +++ b/arch/powerpc/Kconfig > > @@ -710,6 +710,7 @@ config PCI > > default PCI_PERMEDIA if !4xx && !CPM2 && !8xx > > default PCI_QSPAN if !4xx && !CPM2 && 8xx > > select ARCH_SUPPORTS_MSI > > + select GENERIC_PCI_IOMAP > > help > > Find out whether your system includes a PCI bus. PCI is the name of > > a bus system, i.e. the way the CPU talks to the other stuff inside > > diff --git a/arch/powerpc/kernel/iomap.c b/arch/powerpc/kernel/iomap.c > > index 2627918..97a3715 100644 > > --- a/arch/powerpc/kernel/iomap.c > > +++ b/arch/powerpc/kernel/iomap.c > > @@ -119,24 +119,6 @@ EXPORT_SYMBOL(ioport_map); > > EXPORT_SYMBOL(ioport_unmap); > > > > #ifdef CONFIG_PCI > > -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; > > -} > > - > > void pci_iounmap(struct pci_dev *dev, void __iomem *addr) > > { > > if (isa_vaddr_is_ioport(addr)) > > @@ -146,6 +128,5 @@ void pci_iounmap(struct pci_dev *dev, void __iomem *addr) > > iounmap(addr); > > } > > > > -EXPORT_SYMBOL(pci_iomap); > > EXPORT_SYMBOL(pci_iounmap); > > #endif /* CONFIG_PCI */ > > -- > > 1.7.5.53.gc233e
On Mon, Dec 05, 2011 at 07:52:01AM +1100, Benjamin Herrenschmidt wrote: > On Sun, 2011-12-04 at 12:48 +0200, Michael S. Tsirkin wrote: > > On Thu, Nov 24, 2011 at 10:19:54PM +0200, Michael S. Tsirkin wrote: > > > powerpc 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/powerpc/include/asm/io.h > > > defines ioremap_nocache same as ioremap. > > > > > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > > > > > > Sorry to nag, any ACKs/NACKs on the powerpc changes? > > I intend to send this to Linus if there are no > > objections. Thanks! > > Ah sorry, forgot about that. Do you have a git tree I can pull to do > quick test ? Yes. git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git linux-next Thanks! > No objection in principle. > > Cheers, > Ben.
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 951e18f..6ffe3df 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -710,6 +710,7 @@ config PCI default PCI_PERMEDIA if !4xx && !CPM2 && !8xx default PCI_QSPAN if !4xx && !CPM2 && 8xx select ARCH_SUPPORTS_MSI + select GENERIC_PCI_IOMAP help Find out whether your system includes a PCI bus. PCI is the name of a bus system, i.e. the way the CPU talks to the other stuff inside diff --git a/arch/powerpc/kernel/iomap.c b/arch/powerpc/kernel/iomap.c index 2627918..97a3715 100644 --- a/arch/powerpc/kernel/iomap.c +++ b/arch/powerpc/kernel/iomap.c @@ -119,24 +119,6 @@ EXPORT_SYMBOL(ioport_map); EXPORT_SYMBOL(ioport_unmap); #ifdef CONFIG_PCI -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; -} - void pci_iounmap(struct pci_dev *dev, void __iomem *addr) { if (isa_vaddr_is_ioport(addr)) @@ -146,6 +128,5 @@ void pci_iounmap(struct pci_dev *dev, void __iomem *addr) iounmap(addr); } -EXPORT_SYMBOL(pci_iomap); EXPORT_SYMBOL(pci_iounmap); #endif /* CONFIG_PCI */
powerpc 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/powerpc/include/asm/io.h defines ioremap_nocache same as ioremap. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> --- arch/powerpc/Kconfig | 1 + arch/powerpc/kernel/iomap.c | 19 ------------------- 2 files changed, 1 insertions(+), 19 deletions(-)