[SPARC64]: Use 'unsigned long' for port argument to I/O string ops.

This kills warnings when building drivers/ide/ide-iops.c
and puts us in-line with what other platforms do here.

Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
David S. Miller
2005-08-31 15:01:33 -07:00
parent 5843e37e24
commit 8a36895c0d
2 changed files with 79 additions and 45 deletions

View File

@@ -7,16 +7,19 @@
#include <asm/io.h> #include <asm/io.h>
#include <asm/byteorder.h> #include <asm/byteorder.h>
void outsb(void __iomem *addr, const void *src, unsigned long count) void outsb(unsigned long __addr, const void *src, unsigned long count)
{ {
void __iomem *addr = (void __iomem *) __addr;
const u8 *p = src; const u8 *p = src;
while (count--) while (count--)
outb(*p++, addr); outb(*p++, addr);
} }
void outsw(void __iomem *addr, const void *src, unsigned long count) void outsw(unsigned long __addr, const void *src, unsigned long count)
{ {
void __iomem *addr = (void __iomem *) __addr;
if (count) { if (count) {
u16 *ps = (u16 *)src; u16 *ps = (u16 *)src;
u32 *pi; u32 *pi;
@@ -44,8 +47,10 @@ void outsw(void __iomem *addr, const void *src, unsigned long count)
} }
} }
void outsl(void __iomem *addr, const void *src, unsigned long count) void outsl(unsigned long __addr, const void *src, unsigned long count)
{ {
void __iomem *addr = (void __iomem *) __addr;
if (count) { if (count) {
if ((((u64)src) & 0x3) == 0) { if ((((u64)src) & 0x3) == 0) {
u32 *p = (u32 *)src; u32 *p = (u32 *)src;
@@ -119,8 +124,10 @@ void outsl(void __iomem *addr, const void *src, unsigned long count)
} }
} }
void insb(void __iomem *addr, void *dst, unsigned long count) void insb(unsigned long __addr, void *dst, unsigned long count)
{ {
void __iomem *addr = (void __iomem *) __addr;
if (count) { if (count) {
u32 *pi; u32 *pi;
u8 *pb = dst; u8 *pb = dst;
@@ -144,8 +151,10 @@ void insb(void __iomem *addr, void *dst, unsigned long count)
} }
} }
void insw(void __iomem *addr, void *dst, unsigned long count) void insw(unsigned long __addr, void *dst, unsigned long count)
{ {
void __iomem *addr = (void __iomem *) __addr;
if (count) { if (count) {
u16 *ps = dst; u16 *ps = dst;
u32 *pi; u32 *pi;
@@ -169,8 +178,10 @@ void insw(void __iomem *addr, void *dst, unsigned long count)
} }
} }
void insl(void __iomem *addr, void *dst, unsigned long count) void insl(unsigned long __addr, void *dst, unsigned long count)
{ {
void __iomem *addr = (void __iomem *) __addr;
if (count) { if (count) {
if ((((unsigned long)dst) & 0x3) == 0) { if ((((unsigned long)dst) & 0x3) == 0) {
u32 *pi = dst; u32 *pi = dst;

View File

@@ -100,18 +100,41 @@ static __inline__ void _outl(u32 l, unsigned long addr)
#define inl_p(__addr) inl(__addr) #define inl_p(__addr) inl(__addr)
#define outl_p(__l, __addr) outl(__l, __addr) #define outl_p(__l, __addr) outl(__l, __addr)
extern void outsb(void __iomem *addr, const void *src, unsigned long count); extern void outsb(unsigned long, const void *, unsigned long);
extern void outsw(void __iomem *addr, const void *src, unsigned long count); extern void outsw(unsigned long, const void *, unsigned long);
extern void outsl(void __iomem *addr, const void *src, unsigned long count); extern void outsl(unsigned long, const void *, unsigned long);
extern void insb(void __iomem *addr, void *dst, unsigned long count); extern void insb(unsigned long, void *, unsigned long);
extern void insw(void __iomem *addr, void *dst, unsigned long count); extern void insw(unsigned long, void *, unsigned long);
extern void insl(void __iomem *addr, void *dst, unsigned long count); extern void insl(unsigned long, void *, unsigned long);
#define ioread8_rep(a,d,c) insb(a,d,c)
#define ioread16_rep(a,d,c) insw(a,d,c) static inline void ioread8_rep(void __iomem *port, void *buf, unsigned long count)
#define ioread32_rep(a,d,c) insl(a,d,c) {
#define iowrite8_rep(a,s,c) outsb(a,s,c) insb((unsigned long __force)port, buf, count);
#define iowrite16_rep(a,s,c) outsw(a,s,c) }
#define iowrite32_rep(a,s,c) outsl(a,s,c) static inline void ioread16_rep(void __iomem *port, void *buf, unsigned long count)
{
insw((unsigned long __force)port, buf, count);
}
static inline void ioread32_rep(void __iomem *port, void *buf, unsigned long count)
{
insl((unsigned long __force)port, buf, count);
}
static inline void iowrite8_rep(void __iomem *port, const void *buf, unsigned long count)
{
outsb((unsigned long __force)port, buf, count);
}
static inline void iowrite16_rep(void __iomem *port, const void *buf, unsigned long count)
{
outsw((unsigned long __force)port, buf, count);
}
static inline void iowrite32_rep(void __iomem *port, const void *buf, unsigned long count)
{
outsl((unsigned long __force)port, buf, count);
}
/* Memory functions, same as I/O accesses on Ultra. */ /* Memory functions, same as I/O accesses on Ultra. */
static inline u8 _readb(const volatile void __iomem *addr) static inline u8 _readb(const volatile void __iomem *addr)