* [PATCH-RFC 10/10] sparc: switch to GENERIC_PCI_IOMAP
[not found] <cover.1322163031.git.mst@redhat.com>
` (3 preceding siblings ...)
(?)
@ 2011-11-24 20:21 ` Michael S. Tsirkin
0 siblings, 0 replies; 9+ messages in thread
From: Michael S. Tsirkin @ 2011-11-24 20:21 UTC (permalink / raw)
Cc: Richard Henderson, Ivan Kokshaysky, Matt Turner, Russell King,
Mikael Starvik, Jesper Nilsson, Richard Kuo, Tony Luck,
Fenghua Yu, Geert Uytterhoeven, Michal Simek, Ralf Baechle,
Jonas Bonn, Kyle McMartin, Helge Deller, James E.J. Bottomley,
Benjamin Herrenschmidt, Paul Mackerras, Chen Liqin, Lennox Wu
sparc 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.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
arch/sparc/Kconfig | 1 +
arch/sparc/include/asm/io_32.h | 5 ++++-
arch/sparc/include/asm/io_64.h | 5 ++++-
arch/sparc/lib/iomap.c | 23 -----------------------
4 files changed, 9 insertions(+), 25 deletions(-)
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index f92602e..a4644f5 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -28,6 +28,7 @@ config SPARC
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_SHOW
select USE_GENERIC_SMP_HELPERS if SMP
+ select GENERIC_PCI_IOMAP
config SPARC32
def_bool !64BIT
diff --git a/arch/sparc/include/asm/io_32.h b/arch/sparc/include/asm/io_32.h
index c2ced21..9be8778 100644
--- a/arch/sparc/include/asm/io_32.h
+++ b/arch/sparc/include/asm/io_32.h
@@ -8,6 +8,10 @@
#include <asm/page.h> /* IO address mapping routines need this */
#include <asm/system.h>
+#ifdef __KERNEL__
+#include <asm-generic/pci_iomap.h>
+#endif
+
#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
static inline u32 flip_dword (u32 l)
@@ -324,7 +328,6 @@ extern void ioport_unmap(void __iomem *);
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
struct pci_dev;
-extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
/*
diff --git a/arch/sparc/include/asm/io_64.h b/arch/sparc/include/asm/io_64.h
index 9c89654..19cd51d 100644
--- a/arch/sparc/include/asm/io_64.h
+++ b/arch/sparc/include/asm/io_64.h
@@ -9,6 +9,10 @@
#include <asm/system.h>
#include <asm/asi.h>
+#ifdef __KERNEL__
+#include <asm-generic/pci_iomap.h>
+#endif
+
/* PC crapola... */
#define __SLOW_DOWN_IO do { } while (0)
#define SLOW_DOWN_IO do { } while (0)
@@ -514,7 +518,6 @@ extern void ioport_unmap(void __iomem *);
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
struct pci_dev;
-extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
static inline int sbus_can_dma_64bit(void)
diff --git a/arch/sparc/lib/iomap.c b/arch/sparc/lib/iomap.c
index 9ef37e1..c4d42a5 100644
--- a/arch/sparc/lib/iomap.c
+++ b/arch/sparc/lib/iomap.c
@@ -18,31 +18,8 @@ void ioport_unmap(void __iomem *addr)
EXPORT_SYMBOL(ioport_map);
EXPORT_SYMBOL(ioport_unmap);
-/* 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 (maxlen && len > maxlen)
- len = maxlen;
- if (flags & IORESOURCE_IO)
- return ioport_map(start, len);
- if (flags & IORESOURCE_MEM) {
- if (flags & IORESOURCE_CACHEABLE)
- return ioremap(start, len);
- return ioremap_nocache(start, len);
- }
- /* What? */
- return NULL;
-}
-
void pci_iounmap(struct pci_dev *dev, void __iomem * addr)
{
/* nothing to do */
}
-EXPORT_SYMBOL(pci_iomap);
EXPORT_SYMBOL(pci_iounmap);
--
1.7.5.53.gc233e
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH-RFC 10/10] sparc: switch to GENERIC_PCI_IOMAP
@ 2011-11-24 20:21 ` Michael S. Tsirkin
0 siblings, 0 replies; 9+ messages in thread
From: Michael S. Tsirkin @ 2011-11-24 20:21 UTC (permalink / raw)
Cc: Richard Henderson, Ivan Kokshaysky, Matt Turner, Russell King,
Mikael Starvik, Jesper Nilsson, Richard Kuo, Tony Luck,
Fenghua Yu, Geert Uytterhoeven, Michal Simek, Ralf Baechle,
Jonas Bonn, Kyle McMartin, Helge Deller, James E.J. Bottomley,
Benjamin Herrenschmidt, Paul Mackerras, Chen Liqin, Lennox Wu
sparc 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.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
arch/sparc/Kconfig | 1 +
arch/sparc/include/asm/io_32.h | 5 ++++-
arch/sparc/include/asm/io_64.h | 5 ++++-
arch/sparc/lib/iomap.c | 23 -----------------------
4 files changed, 9 insertions(+), 25 deletions(-)
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index f92602e..a4644f5 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -28,6 +28,7 @@ config SPARC
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_SHOW
select USE_GENERIC_SMP_HELPERS if SMP
+ select GENERIC_PCI_IOMAP
config SPARC32
def_bool !64BIT
diff --git a/arch/sparc/include/asm/io_32.h b/arch/sparc/include/asm/io_32.h
index c2ced21..9be8778 100644
--- a/arch/sparc/include/asm/io_32.h
+++ b/arch/sparc/include/asm/io_32.h
@@ -8,6 +8,10 @@
#include <asm/page.h> /* IO address mapping routines need this */
#include <asm/system.h>
+#ifdef __KERNEL__
+#include <asm-generic/pci_iomap.h>
+#endif
+
#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
static inline u32 flip_dword (u32 l)
@@ -324,7 +328,6 @@ extern void ioport_unmap(void __iomem *);
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
struct pci_dev;
-extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
/*
diff --git a/arch/sparc/include/asm/io_64.h b/arch/sparc/include/asm/io_64.h
index 9c89654..19cd51d 100644
--- a/arch/sparc/include/asm/io_64.h
+++ b/arch/sparc/include/asm/io_64.h
@@ -9,6 +9,10 @@
#include <asm/system.h>
#include <asm/asi.h>
+#ifdef __KERNEL__
+#include <asm-generic/pci_iomap.h>
+#endif
+
/* PC crapola... */
#define __SLOW_DOWN_IO do { } while (0)
#define SLOW_DOWN_IO do { } while (0)
@@ -514,7 +518,6 @@ extern void ioport_unmap(void __iomem *);
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
struct pci_dev;
-extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
static inline int sbus_can_dma_64bit(void)
diff --git a/arch/sparc/lib/iomap.c b/arch/sparc/lib/iomap.c
index 9ef37e1..c4d42a5 100644
--- a/arch/sparc/lib/iomap.c
+++ b/arch/sparc/lib/iomap.c
@@ -18,31 +18,8 @@ void ioport_unmap(void __iomem *addr)
EXPORT_SYMBOL(ioport_map);
EXPORT_SYMBOL(ioport_unmap);
-/* 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 (maxlen && len > maxlen)
- len = maxlen;
- if (flags & IORESOURCE_IO)
- return ioport_map(start, len);
- if (flags & IORESOURCE_MEM) {
- if (flags & IORESOURCE_CACHEABLE)
- return ioremap(start, len);
- return ioremap_nocache(start, len);
- }
- /* What? */
- return NULL;
-}
-
void pci_iounmap(struct pci_dev *dev, void __iomem * addr)
{
/* nothing to do */
}
-EXPORT_SYMBOL(pci_iomap);
EXPORT_SYMBOL(pci_iounmap);
--
1.7.5.53.gc233e
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH-RFC 10/10] sparc: switch to GENERIC_PCI_IOMAP
@ 2011-11-24 20:21 ` Michael S. Tsirkin
0 siblings, 0 replies; 9+ messages in thread
From: Michael S. Tsirkin @ 2011-11-24 20:21 UTC (permalink / raw)
Cc: Richard Henderson, Ivan Kokshaysky, Matt Turner, Russell King,
Mikael Starvik, Jesper Nilsson, Richard Kuo, Tony Luck,
Fenghua Yu, Geert Uytterhoeven, Michal Simek, Ralf Baechle,
Jonas Bonn, Kyle McMartin, Helge Deller, James E.J. Bottomley,
Benjamin Herrenschmidt, Paul Mackerras, Chen Liqin, Lennox Wu,
Paul Mundt, David S. Miller, Guan Xuetao, Thomas Gleixner,
Ingo Molnar, H. Peter Anvin, x86, Arnd Bergmann, Andrew Morton,
Michael S. Tsirkin, Nicolas Pitre, Paul Bolle, Olof Johansson,
Rob Herring, Paul Gortmaker, Kumar Gala, Michael Ellerman,
Fabio Baltieri, Lucas De Marchi, John W. Linville, Lasse Collin,
Arend van Spriel, Franky Lin, linux-alpha, linux-kernel,
linux-arm-kernel, linux-cris-kernel, linux-hexagon, linux-ia64,
linux-m68k, microblaze-uclinux, linux-mips, linux, linux-parisc,
linuxppc-dev, linux-sh, sparclinux, linux-arch, Jesse Barnes,
linux-pci
sparc 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.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
arch/sparc/Kconfig | 1 +
arch/sparc/include/asm/io_32.h | 5 ++++-
arch/sparc/include/asm/io_64.h | 5 ++++-
arch/sparc/lib/iomap.c | 23 -----------------------
4 files changed, 9 insertions(+), 25 deletions(-)
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index f92602e..a4644f5 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -28,6 +28,7 @@ config SPARC
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_SHOW
select USE_GENERIC_SMP_HELPERS if SMP
+ select GENERIC_PCI_IOMAP
config SPARC32
def_bool !64BIT
diff --git a/arch/sparc/include/asm/io_32.h b/arch/sparc/include/asm/io_32.h
index c2ced21..9be8778 100644
--- a/arch/sparc/include/asm/io_32.h
+++ b/arch/sparc/include/asm/io_32.h
@@ -8,6 +8,10 @@
#include <asm/page.h> /* IO address mapping routines need this */
#include <asm/system.h>
+#ifdef __KERNEL__
+#include <asm-generic/pci_iomap.h>
+#endif
+
#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
static inline u32 flip_dword (u32 l)
@@ -324,7 +328,6 @@ extern void ioport_unmap(void __iomem *);
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
struct pci_dev;
-extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
/*
diff --git a/arch/sparc/include/asm/io_64.h b/arch/sparc/include/asm/io_64.h
index 9c89654..19cd51d 100644
--- a/arch/sparc/include/asm/io_64.h
+++ b/arch/sparc/include/asm/io_64.h
@@ -9,6 +9,10 @@
#include <asm/system.h>
#include <asm/asi.h>
+#ifdef __KERNEL__
+#include <asm-generic/pci_iomap.h>
+#endif
+
/* PC crapola... */
#define __SLOW_DOWN_IO do { } while (0)
#define SLOW_DOWN_IO do { } while (0)
@@ -514,7 +518,6 @@ extern void ioport_unmap(void __iomem *);
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
struct pci_dev;
-extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
static inline int sbus_can_dma_64bit(void)
diff --git a/arch/sparc/lib/iomap.c b/arch/sparc/lib/iomap.c
index 9ef37e1..c4d42a5 100644
--- a/arch/sparc/lib/iomap.c
+++ b/arch/sparc/lib/iomap.c
@@ -18,31 +18,8 @@ void ioport_unmap(void __iomem *addr)
EXPORT_SYMBOL(ioport_map);
EXPORT_SYMBOL(ioport_unmap);
-/* 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 (maxlen && len > maxlen)
- len = maxlen;
- if (flags & IORESOURCE_IO)
- return ioport_map(start, len);
- if (flags & IORESOURCE_MEM) {
- if (flags & IORESOURCE_CACHEABLE)
- return ioremap(start, len);
- return ioremap_nocache(start, len);
- }
- /* What? */
- return NULL;
-}
-
void pci_iounmap(struct pci_dev *dev, void __iomem * addr)
{
/* nothing to do */
}
-EXPORT_SYMBOL(pci_iomap);
EXPORT_SYMBOL(pci_iounmap);
--
1.7.5.53.gc233e
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH-RFC 10/10] sparc: switch to GENERIC_PCI_IOMAP
@ 2011-11-24 20:21 ` Michael S. Tsirkin
0 siblings, 0 replies; 9+ messages in thread
From: Michael S. Tsirkin @ 2011-11-24 20:21 UTC (permalink / raw)
Cc: Richard Henderson, Ivan Kokshaysky, Matt Turner, Russell King,
Mikael Starvik, Jesper Nilsson, Richard Kuo, Tony Luck,
Fenghua Yu, Geert Uytterhoeven, Michal Simek, Ralf Baechle,
Jonas Bonn, Kyle McMartin, Helge Deller, James E.J. Bottomley,
Benjamin Herrenschmidt, Paul Mackerras, Chen Liqin, Lennox Wu,
Paul Mundt, David S. Miller, Guan Xuetao, Thomas Gleixner,
Ingo Molnar, H. Peter Anvin, x86, Arnd Bergmann, Andrew Morton,
Michael S. Tsirkin, Nicolas Pitre, Paul Bolle, Olof Johansson,
Rob Herring, Paul Gortmaker, Kumar Gala, Michael Ellerman,
Fabio Baltieri, Lucas De Marchi, John W. Linville, Lasse Collin,
Arend van Spriel, Franky Lin, linux-alpha, linux-kernel,
linux-arm-kernel, linux-cris-kernel, linux-hexagon, linux-ia64,
linux-m68k, microblaze-uclinux, linux-mips, linux, linux-parisc,
linuxppc-dev, linux-sh, sparclinux, linux-arch, Jesse Barnes,
linux-pci
sparc 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.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
arch/sparc/Kconfig | 1 +
arch/sparc/include/asm/io_32.h | 5 ++++-
arch/sparc/include/asm/io_64.h | 5 ++++-
arch/sparc/lib/iomap.c | 23 -----------------------
4 files changed, 9 insertions(+), 25 deletions(-)
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index f92602e..a4644f5 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -28,6 +28,7 @@ config SPARC
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_SHOW
select USE_GENERIC_SMP_HELPERS if SMP
+ select GENERIC_PCI_IOMAP
config SPARC32
def_bool !64BIT
diff --git a/arch/sparc/include/asm/io_32.h b/arch/sparc/include/asm/io_32.h
index c2ced21..9be8778 100644
--- a/arch/sparc/include/asm/io_32.h
+++ b/arch/sparc/include/asm/io_32.h
@@ -8,6 +8,10 @@
#include <asm/page.h> /* IO address mapping routines need this */
#include <asm/system.h>
+#ifdef __KERNEL__
+#include <asm-generic/pci_iomap.h>
+#endif
+
#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
static inline u32 flip_dword (u32 l)
@@ -324,7 +328,6 @@ extern void ioport_unmap(void __iomem *);
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
struct pci_dev;
-extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
/*
diff --git a/arch/sparc/include/asm/io_64.h b/arch/sparc/include/asm/io_64.h
index 9c89654..19cd51d 100644
--- a/arch/sparc/include/asm/io_64.h
+++ b/arch/sparc/include/asm/io_64.h
@@ -9,6 +9,10 @@
#include <asm/system.h>
#include <asm/asi.h>
+#ifdef __KERNEL__
+#include <asm-generic/pci_iomap.h>
+#endif
+
/* PC crapola... */
#define __SLOW_DOWN_IO do { } while (0)
#define SLOW_DOWN_IO do { } while (0)
@@ -514,7 +518,6 @@ extern void ioport_unmap(void __iomem *);
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
struct pci_dev;
-extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
static inline int sbus_can_dma_64bit(void)
diff --git a/arch/sparc/lib/iomap.c b/arch/sparc/lib/iomap.c
index 9ef37e1..c4d42a5 100644
--- a/arch/sparc/lib/iomap.c
+++ b/arch/sparc/lib/iomap.c
@@ -18,31 +18,8 @@ void ioport_unmap(void __iomem *addr)
EXPORT_SYMBOL(ioport_map);
EXPORT_SYMBOL(ioport_unmap);
-/* 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 (maxlen && len > maxlen)
- len = maxlen;
- if (flags & IORESOURCE_IO)
- return ioport_map(start, len);
- if (flags & IORESOURCE_MEM) {
- if (flags & IORESOURCE_CACHEABLE)
- return ioremap(start, len);
- return ioremap_nocache(start, len);
- }
- /* What? */
- return NULL;
-}
-
void pci_iounmap(struct pci_dev *dev, void __iomem * addr)
{
/* nothing to do */
}
-EXPORT_SYMBOL(pci_iomap);
EXPORT_SYMBOL(pci_iounmap);
--
1.7.5.53.gc233e
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH-RFC 10/10] sparc: switch to GENERIC_PCI_IOMAP
@ 2011-11-24 20:21 ` Michael S. Tsirkin
0 siblings, 0 replies; 9+ messages in thread
From: Michael S. Tsirkin @ 2011-11-24 20:21 UTC (permalink / raw)
Cc: Richard Henderson, Ivan Kokshaysky, Matt Turner, Russell King,
Mikael Starvik, Jesper Nilsson, Richard Kuo, Tony Luck,
Fenghua Yu, Geert Uytterhoeven, Michal Simek, Ralf Baechle,
Jonas Bonn, Kyle McMartin, Helge Deller, James E.J. Bottomley,
Benjamin Herrenschmidt, Paul Mackerras, Chen Liqin, Lennox Wu
sparc 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.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
arch/sparc/Kconfig | 1 +
arch/sparc/include/asm/io_32.h | 5 ++++-
arch/sparc/include/asm/io_64.h | 5 ++++-
arch/sparc/lib/iomap.c | 23 -----------------------
4 files changed, 9 insertions(+), 25 deletions(-)
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index f92602e..a4644f5 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -28,6 +28,7 @@ config SPARC
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_SHOW
select USE_GENERIC_SMP_HELPERS if SMP
+ select GENERIC_PCI_IOMAP
config SPARC32
def_bool !64BIT
diff --git a/arch/sparc/include/asm/io_32.h b/arch/sparc/include/asm/io_32.h
index c2ced21..9be8778 100644
--- a/arch/sparc/include/asm/io_32.h
+++ b/arch/sparc/include/asm/io_32.h
@@ -8,6 +8,10 @@
#include <asm/page.h> /* IO address mapping routines need this */
#include <asm/system.h>
+#ifdef __KERNEL__
+#include <asm-generic/pci_iomap.h>
+#endif
+
#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
static inline u32 flip_dword (u32 l)
@@ -324,7 +328,6 @@ extern void ioport_unmap(void __iomem *);
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
struct pci_dev;
-extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
/*
diff --git a/arch/sparc/include/asm/io_64.h b/arch/sparc/include/asm/io_64.h
index 9c89654..19cd51d 100644
--- a/arch/sparc/include/asm/io_64.h
+++ b/arch/sparc/include/asm/io_64.h
@@ -9,6 +9,10 @@
#include <asm/system.h>
#include <asm/asi.h>
+#ifdef __KERNEL__
+#include <asm-generic/pci_iomap.h>
+#endif
+
/* PC crapola... */
#define __SLOW_DOWN_IO do { } while (0)
#define SLOW_DOWN_IO do { } while (0)
@@ -514,7 +518,6 @@ extern void ioport_unmap(void __iomem *);
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
struct pci_dev;
-extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
static inline int sbus_can_dma_64bit(void)
diff --git a/arch/sparc/lib/iomap.c b/arch/sparc/lib/iomap.c
index 9ef37e1..c4d42a5 100644
--- a/arch/sparc/lib/iomap.c
+++ b/arch/sparc/lib/iomap.c
@@ -18,31 +18,8 @@ void ioport_unmap(void __iomem *addr)
EXPORT_SYMBOL(ioport_map);
EXPORT_SYMBOL(ioport_unmap);
-/* 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 (maxlen && len > maxlen)
- len = maxlen;
- if (flags & IORESOURCE_IO)
- return ioport_map(start, len);
- if (flags & IORESOURCE_MEM) {
- if (flags & IORESOURCE_CACHEABLE)
- return ioremap(start, len);
- return ioremap_nocache(start, len);
- }
- /* What? */
- return NULL;
-}
-
void pci_iounmap(struct pci_dev *dev, void __iomem * addr)
{
/* nothing to do */
}
-EXPORT_SYMBOL(pci_iomap);
EXPORT_SYMBOL(pci_iounmap);
--
1.7.5.53.gc233e
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH-RFC 10/10] sparc: switch to GENERIC_PCI_IOMAP
@ 2011-11-24 20:21 ` Michael S. Tsirkin
0 siblings, 0 replies; 9+ messages in thread
From: Michael S. Tsirkin @ 2011-11-24 20:21 UTC (permalink / raw)
Cc: Nicolas Pitre, linux-mips, linux-m68k, linux-ia64,
Michael S. Tsirkin, linux, linux-pci, Jesse Barnes, Chen Liqin,
Paul Mackerras, H. Peter Anvin, sparclinux, Guan Xuetao,
Lennox Wu, Jonas Bonn, Jesper Nilsson, Russell King, linux-sh,
linux-hexagon, Helge Deller, x86, James E.J. Bottomley,
Ingo Molnar, Geert Uytterhoeven, linux-arch, Arend van Spriel,
Matt Turner, Fenghua Yu, Lasse Collin, Arnd Bergmann,
Lucas De Marchi, microblaze-uclinux, Paul Bolle, Rob Herring,
Mikael Starvik, Ivan Kokshaysky, Franky Lin, Thomas Gleixner,
Fabio Baltieri, linux-arm-kernel, Richard Henderson,
Michael Ellerman, Michal Simek, Tony Luck, linux-parisc,
linux-cris-kernel, Paul Gortmaker, linux-kernel, Ralf Baechle,
Richard Kuo, Kyle McMartin, Paul Mundt, linux-alpha,
Olof Johansson, Andrew Morton, linuxppc-dev, David S. Miller
sparc 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.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
arch/sparc/Kconfig | 1 +
arch/sparc/include/asm/io_32.h | 5 ++++-
arch/sparc/include/asm/io_64.h | 5 ++++-
arch/sparc/lib/iomap.c | 23 -----------------------
4 files changed, 9 insertions(+), 25 deletions(-)
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index f92602e..a4644f5 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -28,6 +28,7 @@ config SPARC
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_SHOW
select USE_GENERIC_SMP_HELPERS if SMP
+ select GENERIC_PCI_IOMAP
config SPARC32
def_bool !64BIT
diff --git a/arch/sparc/include/asm/io_32.h b/arch/sparc/include/asm/io_32.h
index c2ced21..9be8778 100644
--- a/arch/sparc/include/asm/io_32.h
+++ b/arch/sparc/include/asm/io_32.h
@@ -8,6 +8,10 @@
#include <asm/page.h> /* IO address mapping routines need this */
#include <asm/system.h>
+#ifdef __KERNEL__
+#include <asm-generic/pci_iomap.h>
+#endif
+
#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
static inline u32 flip_dword (u32 l)
@@ -324,7 +328,6 @@ extern void ioport_unmap(void __iomem *);
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
struct pci_dev;
-extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
/*
diff --git a/arch/sparc/include/asm/io_64.h b/arch/sparc/include/asm/io_64.h
index 9c89654..19cd51d 100644
--- a/arch/sparc/include/asm/io_64.h
+++ b/arch/sparc/include/asm/io_64.h
@@ -9,6 +9,10 @@
#include <asm/system.h>
#include <asm/asi.h>
+#ifdef __KERNEL__
+#include <asm-generic/pci_iomap.h>
+#endif
+
/* PC crapola... */
#define __SLOW_DOWN_IO do { } while (0)
#define SLOW_DOWN_IO do { } while (0)
@@ -514,7 +518,6 @@ extern void ioport_unmap(void __iomem *);
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
struct pci_dev;
-extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
static inline int sbus_can_dma_64bit(void)
diff --git a/arch/sparc/lib/iomap.c b/arch/sparc/lib/iomap.c
index 9ef37e1..c4d42a5 100644
--- a/arch/sparc/lib/iomap.c
+++ b/arch/sparc/lib/iomap.c
@@ -18,31 +18,8 @@ void ioport_unmap(void __iomem *addr)
EXPORT_SYMBOL(ioport_map);
EXPORT_SYMBOL(ioport_unmap);
-/* 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 (maxlen && len > maxlen)
- len = maxlen;
- if (flags & IORESOURCE_IO)
- return ioport_map(start, len);
- if (flags & IORESOURCE_MEM) {
- if (flags & IORESOURCE_CACHEABLE)
- return ioremap(start, len);
- return ioremap_nocache(start, len);
- }
- /* What? */
- return NULL;
-}
-
void pci_iounmap(struct pci_dev *dev, void __iomem * addr)
{
/* nothing to do */
}
-EXPORT_SYMBOL(pci_iomap);
EXPORT_SYMBOL(pci_iounmap);
--
1.7.5.53.gc233e
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH-RFC 10/10] sparc: switch to GENERIC_PCI_IOMAP
@ 2011-12-04 10:49 Michael S. Tsirkin
2011-12-04 11:59 ` Michael S. Tsirkin
2011-12-04 18:07 ` David Miller
0 siblings, 2 replies; 9+ messages in thread
From: Michael S. Tsirkin @ 2011-12-04 10:49 UTC (permalink / raw)
To: sparclinux
On Thu, Nov 24, 2011 at 10:21:27PM +0200, Michael S. Tsirkin wrote:
> sparc 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.
>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Sorry to nag, any ACKs/NACKs on the sparc changes?
I intend to send this to Linus if there are no
objections. Thanks!
> ---
> arch/sparc/Kconfig | 1 +
> arch/sparc/include/asm/io_32.h | 5 ++++-
> arch/sparc/include/asm/io_64.h | 5 ++++-
> arch/sparc/lib/iomap.c | 23 -----------------------
> 4 files changed, 9 insertions(+), 25 deletions(-)
>
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index f92602e..a4644f5 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -28,6 +28,7 @@ config SPARC
> select HAVE_GENERIC_HARDIRQS
> select GENERIC_IRQ_SHOW
> select USE_GENERIC_SMP_HELPERS if SMP
> + select GENERIC_PCI_IOMAP
>
> config SPARC32
> def_bool !64BIT
> diff --git a/arch/sparc/include/asm/io_32.h b/arch/sparc/include/asm/io_32.h
> index c2ced21..9be8778 100644
> --- a/arch/sparc/include/asm/io_32.h
> +++ b/arch/sparc/include/asm/io_32.h
> @@ -8,6 +8,10 @@
> #include <asm/page.h> /* IO address mapping routines need this */
> #include <asm/system.h>
>
> +#ifdef __KERNEL__
> +#include <asm-generic/pci_iomap.h>
> +#endif
> +
> #define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
>
> static inline u32 flip_dword (u32 l)
> @@ -324,7 +328,6 @@ extern void ioport_unmap(void __iomem *);
>
> /* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
> struct pci_dev;
> -extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
> extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
>
> /*
> diff --git a/arch/sparc/include/asm/io_64.h b/arch/sparc/include/asm/io_64.h
> index 9c89654..19cd51d 100644
> --- a/arch/sparc/include/asm/io_64.h
> +++ b/arch/sparc/include/asm/io_64.h
> @@ -9,6 +9,10 @@
> #include <asm/system.h>
> #include <asm/asi.h>
>
> +#ifdef __KERNEL__
> +#include <asm-generic/pci_iomap.h>
> +#endif
> +
> /* PC crapola... */
> #define __SLOW_DOWN_IO do { } while (0)
> #define SLOW_DOWN_IO do { } while (0)
> @@ -514,7 +518,6 @@ extern void ioport_unmap(void __iomem *);
>
> /* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
> struct pci_dev;
> -extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
> extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
>
> static inline int sbus_can_dma_64bit(void)
> diff --git a/arch/sparc/lib/iomap.c b/arch/sparc/lib/iomap.c
> index 9ef37e1..c4d42a5 100644
> --- a/arch/sparc/lib/iomap.c
> +++ b/arch/sparc/lib/iomap.c
> @@ -18,31 +18,8 @@ void ioport_unmap(void __iomem *addr)
> EXPORT_SYMBOL(ioport_map);
> EXPORT_SYMBOL(ioport_unmap);
>
> -/* 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 (maxlen && len > maxlen)
> - len = maxlen;
> - if (flags & IORESOURCE_IO)
> - return ioport_map(start, len);
> - if (flags & IORESOURCE_MEM) {
> - if (flags & IORESOURCE_CACHEABLE)
> - return ioremap(start, len);
> - return ioremap_nocache(start, len);
> - }
> - /* What? */
> - return NULL;
> -}
> -
> void pci_iounmap(struct pci_dev *dev, void __iomem * addr)
> {
> /* nothing to do */
> }
> -EXPORT_SYMBOL(pci_iomap);
> EXPORT_SYMBOL(pci_iounmap);
> --
> 1.7.5.53.gc233e
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH-RFC 10/10] sparc: switch to GENERIC_PCI_IOMAP
2011-12-04 10:49 [PATCH-RFC 10/10] sparc: switch to GENERIC_PCI_IOMAP Michael S. Tsirkin
@ 2011-12-04 11:59 ` Michael S. Tsirkin
2011-12-04 18:07 ` David Miller
1 sibling, 0 replies; 9+ messages in thread
From: Michael S. Tsirkin @ 2011-12-04 11:59 UTC (permalink / raw)
To: sparclinux
On Sun, Dec 04, 2011 at 12:26:19PM +0100, Sam Ravnborg wrote:
> > --- a/arch/sparc/include/asm/io_32.h
> > +++ b/arch/sparc/include/asm/io_32.h
> > @@ -8,6 +8,10 @@
> > #include <asm/page.h> /* IO address mapping routines need this */
> > #include <asm/system.h>
> >
> > +#ifdef __KERNEL__
> > +#include <asm-generic/pci_iomap.h>
> > +#endif
> > +
>
> This file is not exported to userspace - so the test for __KERNEL__ can be
> dropped.
>
>
> > diff --git a/arch/sparc/include/asm/io_64.h b/arch/sparc/include/asm/
> io_64.h
> > index 9c89654..19cd51d 100644
> > --- a/arch/sparc/include/asm/io_64.h
> > +++ b/arch/sparc/include/asm/io_64.h
> > @@ -9,6 +9,10 @@
> > #include <asm/system.h>
> > #include <asm/asi.h>
> >
> > +#ifdef __KERNEL__
> > +#include <asm-generic/pci_iomap.h>
> > +#endif
>
> Likewise
>
> Sam
>
> Sam
Hmm.
Why is there an #ifdef __KERNEL__ a bit lower?
That's why I put the includes within ifdef __KERNEL__ - the
definitions pulled in were within ifdef __KERNEL__ originally.
--
MST
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH-RFC 10/10] sparc: switch to GENERIC_PCI_IOMAP
2011-12-04 10:49 [PATCH-RFC 10/10] sparc: switch to GENERIC_PCI_IOMAP Michael S. Tsirkin
2011-12-04 11:59 ` Michael S. Tsirkin
@ 2011-12-04 18:07 ` David Miller
1 sibling, 0 replies; 9+ messages in thread
From: David Miller @ 2011-12-04 18:07 UTC (permalink / raw)
To: sparclinux
From: "Michael S. Tsirkin" <mst@redhat.com>
Date: Sun, 4 Dec 2011 12:49:17 +0200
> On Thu, Nov 24, 2011 at 10:21:27PM +0200, Michael S. Tsirkin wrote:
>> sparc 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.
>>
>> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
>
> Sorry to nag, any ACKs/NACKs on the sparc changes?
> I intend to send this to Linus if there are no
> objections. Thanks!
Acked-by: David S. Miller <davem@davemloft.net>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2011-12-04 18:07 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-04 10:49 [PATCH-RFC 10/10] sparc: switch to GENERIC_PCI_IOMAP Michael S. Tsirkin
2011-12-04 11:59 ` Michael S. Tsirkin
2011-12-04 18:07 ` David Miller
[not found] <cover.1322163031.git.mst@redhat.com>
2011-11-24 20:21 ` Michael S. Tsirkin
2011-11-24 20:21 ` Michael S. Tsirkin
2011-11-24 20:21 ` Michael S. Tsirkin
2011-11-24 20:21 ` Michael S. Tsirkin
2011-11-24 20:21 ` Michael S. Tsirkin
2011-11-24 20:21 ` Michael S. Tsirkin
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.