ar7: remove useless volatiles
[openwrt/staging/lynxis/omap.git] / target / linux / ar7 / files / arch / mips / ar7 / memory.c
index 65a094cc35da0cc09cdd059f852b99218da76cde..e8522a1741581027c36b84b7e9f3b1e0b8cd4a08 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * Copyright (C) 2007 OpenWrt.org
- *
  * Based on arch/mips/mm/init.c
  * Copyright (C) 1994 - 2000 Ralf Baechle
  * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
 static int __init memsize(void)
 {
        u32 size = (64 << 20);
-       volatile u32 *addr = (u32 *)KSEG1ADDR(0x14000000 + size - 4);
+       u32 *addr = (u32 *)KSEG1ADDR(0x14000000 + size - 4);
        u32 *kernel_end = (u32 *)KSEG1ADDR(CPHYSADDR((u32)&_end));
+       u32 *tmpaddr = addr;
 
-       while (addr > kernel_end) {
-               *addr = (u32)addr;
+       while (tmpaddr > kernel_end) {
+               *tmpaddr = (u32)tmpaddr;
                size >>= 1;
-               addr -= size >> 2;
+               tmpaddr -= size >> 2;
        }
 
        do {
-               addr += size >> 2;
-               if (*addr != (u32)addr)
+               tmpaddr += size >> 2;
+               if (*tmpaddr != (u32)tmpaddr)
                        break;
                size <<= 1;
        } while (size < (64 << 20));
 
+       writel(tmpaddr, &addr);
+
        return size;
 }