Pull button into test branch
[linux-drm-fsl-dcu.git] / arch / sh / mm / clear_page.S
index 08acead7b2a1b51070b1f2bf93259bfbd4b55523..8a706131e521d9c03485538bc5718130a53c57a1 100644 (file)
@@ -1,12 +1,12 @@
-/* $Id: clear_page.S,v 1.13 2003/08/25 17:03:10 lethal Exp $
- *
+/*
  * __clear_user_page, __clear_user, clear_page implementation of SuperH
  *
  * Copyright (C) 2001  Kaz Kojima
  * Copyright (C) 2001, 2002  Niibe Yutaka
- *
+ * Copyright (C) 2006  Paul Mundt
  */
 #include <linux/linkage.h>
+#include <asm/page.h>
 
 /*
  * clear_page_slow
 /*
  * r0 --- scratch
  * r4 --- to
- * r5 --- to + 4096
+ * r5 --- to + PAGE_SIZE
  */
 ENTRY(clear_page_slow)
        mov     r4,r5
-       mov.w   .Llimit,r0
+       mov.l   .Llimit,r0
        add     r0,r5
        mov     #0,r0
        !
@@ -50,7 +50,7 @@ ENTRY(clear_page_slow)
        !
        rts
         nop
-.Llimit:       .word   (4096-28)
+.Llimit:       .long   (PAGE_SIZE-28)
 
 ENTRY(__clear_user)
        !
@@ -164,10 +164,10 @@ ENTRY(__clear_user)
  * r0 --- scratch 
  * r4 --- to
  * r5 --- orig_to
- * r6 --- to + 4096
+ * r6 --- to + PAGE_SIZE
  */
 ENTRY(__clear_user_page)
-       mov.w   .L4096,r0
+       mov.l   .Lpsz,r0
        mov     r4,r6
        add     r0,r6
        mov     #0,r0
@@ -191,104 +191,7 @@ ENTRY(__clear_user_page)
        !
        rts
         nop
-.L4096:        .word   4096
-
-ENTRY(__flush_cache_4096)
-       mov.l   1f,r3
-       add     r6,r3
-       mov     r4,r0
-       mov     #64,r2
-       shll    r2
-       mov     #64,r6
-       jmp     @r3
-        mov    #96,r7
-       .align  2
-1:     .long   2f
-2:
-       .rept   32
-       mov.l   r5,@r0
-       mov.l   r5,@(32,r0)
-       mov.l   r5,@(r0,r6)
-       mov.l   r5,@(r0,r7)
-       add     r2,r5
-       add     r2,r0
-       .endr
-       nop
-       nop
-       nop
-       nop
-       nop
-       nop
-       nop
-       rts
-        nop
-
-ENTRY(__flush_dcache_all)
-       mov.l   2f,r0
-       mov.l   3f,r4
-       and     r0,r4           ! r4 = (unsigned long)&empty_zero_page[0] & ~0xffffc000
-       stc     sr,r1           ! save SR
-       mov.l   4f,r2
-       or      r1,r2
-       mov     #32,r3
-       shll2   r3
-1:
-       ldc     r2,sr           ! set BL bit
-       movca.l r0,@r4
-       ocbi    @r4
-       add     #32,r4
-       movca.l r0,@r4
-       ocbi    @r4
-       add     #32,r4
-       movca.l r0,@r4
-       ocbi    @r4
-       add     #32,r4
-       movca.l r0,@r4
-       ocbi    @r4
-       ldc     r1,sr           ! restore SR
-       dt      r3
-       bf/s    1b
-        add    #32,r4
-
-       rts
-        nop
-       .align  2
-2:     .long   0xffffc000
-3:     .long   empty_zero_page
-4:     .long   0x10000000      ! BL bit
-
-/* __flush_cache_4096_all(unsigned long addr) */
-ENTRY(__flush_cache_4096_all)
-       mov.l   2f,r0
-       mov.l   3f,r2
-       and     r0,r2
-       or      r2,r4           ! r4 = addr | (unsigned long)&empty_zero_page[0] & ~0x3fff
-       stc     sr,r1           ! save SR
-       mov.l   4f,r2
-       or      r1,r2
-       mov     #32,r3
-1:
-       ldc     r2,sr           ! set BL bit
-       movca.l r0,@r4
-       ocbi    @r4
-       add     #32,r4
-       movca.l r0,@r4
-       ocbi    @r4
-       add     #32,r4
-       movca.l r0,@r4
-       ocbi    @r4
-       add     #32,r4
-       movca.l r0,@r4
-       ocbi    @r4
-       ldc     r1,sr           ! restore SR
-       dt      r3
-       bf/s    1b
-        add    #32,r4
+.Lpsz: .long   PAGE_SIZE
 
-       rts
-        nop
-       .align  2
-2:     .long   0xffffc000
-3:     .long   empty_zero_page
-4:     .long   0x10000000      ! BL bit
 #endif
+