]> git.hungrycats.org Git - linux/commitdiff
[PATCH] m32r: update ioremap routine
authorHirokazu Takata <takata@linux-m32r.org>
Wed, 6 Oct 2004 01:15:24 +0000 (18:15 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Wed, 6 Oct 2004 01:15:24 +0000 (18:15 -0700)
Here is a patch to update ioremap*.c for m32r, taken from "Add __iomem
modifier to the return value type of __ioremap() for much stricter
type-checking."

* arch/m32r/mm/ioremap.c: ditto.
- Add __iomem modifier to the return value type of __ioremap()
  for much stricter type-checking.

* arch/m32r/mm/ioremap-nommu.c: ditto.

* include/asm-m32r/io.h:
- Modified for much stricter type-checking.
- Change __inline__ to inline.

Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/m32r/mm/ioremap-nommu.c
arch/m32r/mm/ioremap.c
include/asm-m32r/io.h

index a48638f36d071a319e7c69d10c55acd77f7ad70f..2759f2d483844c08c0c939dff3a1f77833fae31a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  linux/arch/m32r/mm/io_remap.c
+ *  linux/arch/m32r/mm/ioremap-nommu.c
  *
  *  Copyright (c) 2001, 2002  Hiroyuki Kondo
  *
 
 #define IS_LOW512(addr) (!((unsigned long)(addr) & ~0x1fffffffUL))
 
-void * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags)
+void __iomem *
+__ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags)
 {
        return (void *)phys_addr;
 }
 
 #define IS_KSEG1(addr) (((unsigned long)(addr) & ~0x1fffffffUL) == KSEG1)
 
-void iounmap(void *addr)
+void iounmap(volatile void __iomem *addr)
 {
 }
 
index 1e629946dc3b106d29715a8bb31f1967561b2d7e..70c59055c19c179a6ad316bec94810a6e077dd42 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  linux/arch/m32r/mm/io_remap.c
+ *  linux/arch/m32r/mm/ioremap.c
  *
  *  Copyright (c) 2001, 2002  Hiroyuki Kondo
  *
@@ -25,8 +25,9 @@
 #include <asm/cacheflush.h>
 #include <asm/tlbflush.h>
 
-static inline void remap_area_pte(pte_t * pte, unsigned long address, unsigned long size,
-       unsigned long phys_addr, unsigned long flags)
+static inline void
+remap_area_pte(pte_t * pte, unsigned long address, unsigned long size,
+              unsigned long phys_addr, unsigned long flags)
 {
        unsigned long end;
        unsigned long pfn;
@@ -52,8 +53,9 @@ static inline void remap_area_pte(pte_t * pte, unsigned long address, unsigned l
        } while (address && (address < end));
 }
 
-static inline int remap_area_pmd(pmd_t * pmd, unsigned long address, unsigned long size,
-       unsigned long phys_addr, unsigned long flags)
+static inline int
+remap_area_pmd(pmd_t * pmd, unsigned long address, unsigned long size,
+              unsigned long phys_addr, unsigned long flags)
 {
        unsigned long end;
 
@@ -75,8 +77,9 @@ static inline int remap_area_pmd(pmd_t * pmd, unsigned long address, unsigned lo
        return 0;
 }
 
-static int remap_area_pages(unsigned long address, unsigned long phys_addr,
-                                unsigned long size, unsigned long flags)
+static int
+remap_area_pages(unsigned long address, unsigned long phys_addr,
+                unsigned long size, unsigned long flags)
 {
        int error;
        pgd_t * dir;
@@ -122,7 +125,8 @@ static int remap_area_pages(unsigned long address, unsigned long phys_addr,
 
 #define IS_LOW512(addr) (!((unsigned long)(addr) & ~0x1fffffffUL))
 
-void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags)
+void __iomem *
+__ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags)
 {
        void __iomem * addr;
        struct vm_struct * area;
@@ -180,7 +184,7 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l
 
 #define IS_KSEG1(addr) (((unsigned long)(addr) & ~0x1fffffffUL) == KSEG1)
 
-void iounmap(void *addr)
+void iounmap(volatile void __iomem *addr)
 {
        if (!IS_KSEG1(addr))
                vfree((void *) (PAGE_MASK & (unsigned long) addr));
index 5ab7e41e172f1c53317f0d170ee54a26054f7e4f..97a64d3385cd5cd3555171b96a253acd0c71316e 100644 (file)
@@ -1,8 +1,8 @@
 #ifndef _ASM_M32R_IO_H
 #define _ASM_M32R_IO_H
 
-/* $Id$ */
-
+#include <linux/string.h>
+#include <linux/compiler.h>
 #include <asm/page.h>  /* __va */
 
 #ifdef __KERNEL__
@@ -22,7 +22,7 @@
  *     this function
  */
 
-static __inline__ unsigned long virt_to_phys(volatile void * address)
+static inline unsigned long virt_to_phys(volatile void * address)
 {
        return __pa(address);
 }
@@ -40,12 +40,13 @@ static __inline__ unsigned long virt_to_phys(volatile void * address)
  *     this function
  */
 
-static __inline__ void *phys_to_virt(unsigned long address)
+static inline void *phys_to_virt(unsigned long address)
 {
        return __va(address);
 }
 
-extern void * __ioremap(unsigned long offset, unsigned long size, unsigned long flags);
+extern void __iomem *
+__ioremap(unsigned long offset, unsigned long size, unsigned long flags);
 
 /**
  *     ioremap         -       map bus memory into CPU space
@@ -59,12 +60,12 @@ extern void * __ioremap(unsigned long offset, unsigned long size, unsigned long
  *     address.
  */
 
-static __inline__ void * ioremap(unsigned long offset, unsigned long size)
+static inline void * ioremap(unsigned long offset, unsigned long size)
 {
        return __ioremap(offset, size, 0);
 }
 
-extern void iounmap(void *addr);
+extern void iounmap(volatile void __iomem *addr);
 #define ioremap_nocache(off,size) ioremap(off,size)
 
 /*
@@ -95,32 +96,32 @@ extern void _outsl(unsigned int, const void *, unsigned long);
 
 static inline unsigned char _readb(unsigned long addr)
 {
-       return *(volatile unsigned char *)addr;
+       return *(volatile unsigned char __force *)addr;
 }
 
 static inline unsigned short _readw(unsigned long addr)
 {
-       return *(volatile unsigned short *)addr;
+       return *(volatile unsigned short __force *)addr;
 }
 
 static inline unsigned long _readl(unsigned long addr)
 {
-       return *(volatile unsigned long *)addr;
+       return *(volatile unsigned long __force *)addr;
 }
 
 static inline void _writeb(unsigned char b, unsigned long addr)
 {
-       *(volatile unsigned char *)addr = b;
+       *(volatile unsigned char __force *)addr = b;
 }
 
 static inline void _writew(unsigned short w, unsigned long addr)
 {
-       *(volatile unsigned short *)addr = w;
+       *(volatile unsigned short __force *)addr = w;
 }
 
 static inline void _writel(unsigned long l, unsigned long addr)
 {
-       *(volatile unsigned long *)addr = l;
+       *(volatile unsigned long __force *)addr = l;
 }
 
 #define inb     _inb
@@ -192,9 +193,23 @@ out:
         return retval;
 }
 
-#define memset_io(a, b, c)     memset((void *)(a), (b), (c))
-#define memcpy_fromio(a, b, c) memcpy((a), (void *)(b), (c))
-#define memcpy_toio(a, b, c)   memcpy((void *)(a), (b), (c))
+static inline void
+memset_io(volatile void __iomem *addr, unsigned char val, int count)
+{
+       memset((void __force *) addr, val, count);
+}
+
+static inline void
+memcpy_fromio(void *dst, volatile void __iomem *src, int count)
+{
+       memcpy(dst, (void __force *) src, count);
+}
+
+static inline void
+memcpy_toio(volatile void __iomem *dst, const void *src, int count)
+{
+       memcpy((void __force *) dst, src, count);
+}
 
 #endif  /* __KERNEL__ */