* [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* [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