sh: Tidy up various clear_page()/copy_page() definitions.
authorPaul Mundt <lethal@linux-sh.org>
Tue, 20 Nov 2007 07:51:28 +0000 (16:51 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 28 Jan 2008 04:18:50 +0000 (13:18 +0900)
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/lib64/page_clear.S
arch/sh/lib64/page_copy.S
arch/sh/mm/copy_page.S
arch/sh/mm/init.c
arch/sh/mm/pg-nommu.c
include/asm-sh/page.h

index ac0111d669a32d52d55e1b0e214cf90060260acf..007ab48ecc1ccafbb6b068010d3bf987ca9114cd 100644 (file)
@@ -25,8 +25,8 @@
        .little
 
        .balign 8
-       .global sh64_page_clear
-sh64_page_clear:
+       .global clear_page
+clear_page:
        pta/l 1f, tr1
        pta/l 2f, tr2
        ptabs/l r18, tr0
index e159c3cd2582ec2389affe1a3bfeabe1ee5074a7..0ec6fca63b563c70cb2861a039e8e26878a524d1 100644 (file)
@@ -10,8 +10,8 @@
    of SH5-101 cut2 eval chip with Cayman board DDR memory.
 
    Parameters:
-   r2 : source effective address (start of page)
-   r3 : destination effective address (start of page)
+   r2 : destination effective address (start of page)
+   r3 : source effective address (start of page)
 
    Always copies 4096 bytes.
 
        .little
 
        .balign 8
-       .global sh64_page_copy
-sh64_page_copy:
+       .global copy_page
+copy_page:
 
-       /* Copy 4096 bytes worth of data from r2 to r3.
+       /* Copy 4096 bytes worth of data from r3 to r2.
           Do prefetches 4 lines ahead.
           Do alloco 2 lines ahead */
 
@@ -41,21 +41,21 @@ sh64_page_copy:
 
 #if 0
        /* TAKum03020 */
-       ld.q r2, 0x00, r63
-       ld.q r2, 0x20, r63
-       ld.q r2, 0x40, r63
-       ld.q r2, 0x60, r63
+       ld.q r3, 0x00, r63
+       ld.q r3, 0x20, r63
+       ld.q r3, 0x40, r63
+       ld.q r3, 0x60, r63
 #endif
-       alloco r3, 0x00
+       alloco r2, 0x00
        synco           ! TAKum03020
-       alloco r3, 0x20
+       alloco r2, 0x20
        synco           ! TAKum03020
 
        movi 3968, r6
-       add  r3, r6, r6
+       add  r2, r6, r6
        addi r6, 64, r7
        addi r7, 64, r8
-       sub r2, r3, r60
+       sub r3, r2, r60
        addi r60, 8, r61
        addi r61, 8, r62
        addi r62, 8, r23
@@ -67,25 +67,23 @@ sh64_page_copy:
 1:
 #if 0
        /* TAKum03020 */
-       bge/u r3, r6, tr2  ! skip prefetch for last 4 lines
-       ldx.q r3, r22, r63 ! prefetch 4 lines hence
+       bge/u r2, r6, tr2  ! skip prefetch for last 4 lines
+       ldx.q r2, r22, r63 ! prefetch 4 lines hence
 #endif
 2:
-       bge/u r3, r7, tr3  ! skip alloco for last 2 lines
-       alloco r3, 0x40    ! alloc destination line 2 lines ahead
+       bge/u r2, r7, tr3  ! skip alloco for last 2 lines
+       alloco r2, 0x40    ! alloc destination line 2 lines ahead
        synco           ! TAKum03020
 3:
-       ldx.q r3, r60, r36
-       ldx.q r3, r61, r37
-       ldx.q r3, r62, r38
-       ldx.q r3, r23, r39
-       st.q  r3,   0, r36
-       st.q  r3,   8, r37
-       st.q  r3,  16, r38
-       st.q  r3,  24, r39
-       addi r3, 32, r3
-       bgt/l r8, r3, tr1
+       ldx.q r2, r60, r36
+       ldx.q r2, r61, r37
+       ldx.q r2, r62, r38
+       ldx.q r2, r23, r39
+       st.q  r2,   0, r36
+       st.q  r2,   8, r37
+       st.q  r2,  16, r38
+       st.q  r2,  24, r39
+       addi r2, 32, r2
+       bgt/l r8, r2, tr1
 
        blink tr0, r63     ! return
-
-
index 40685018b95294ecce543f03a6127bedad77fdc2..b879545fa28b2245335aae1833598b4fb9fe95b7 100644 (file)
@@ -9,11 +9,11 @@
 #include <asm/page.h>
 
 /*
- * copy_page_slow
+ * copy_page
  * @to: P1 address
  * @from: P1 address
  *
- * void copy_page_slow(void *to, void *from)
+ * void copy_page(void *to, void *from)
  */
 
 /*
@@ -23,7 +23,7 @@
  * r10 --- to
  * r11 --- from
  */
-ENTRY(copy_page_slow)
+ENTRY(copy_page)
        mov.l   r8,@-r15
        mov.l   r10,@-r15
        mov.l   r11,@-r15
index 5d19c8c7ab530e39b60f50bdd6451a353a52edcb..79c309780f953a16bf65c621aae490ffe10e9c8d 100644 (file)
@@ -24,9 +24,6 @@
 DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
 pgd_t swapper_pg_dir[PTRS_PER_PGD];
 
-void (*copy_page)(void *from, void *to);
-void (*clear_page)(void *to);
-
 void show_mem(void)
 {
        int total = 0, reserved = 0, free = 0;
@@ -203,18 +200,6 @@ void __init mem_init(void)
        memset(empty_zero_page, 0, PAGE_SIZE);
        __flush_wback_region(empty_zero_page, PAGE_SIZE);
 
-       /*
-        * Setup wrappers for copy/clear_page(), these will get overridden
-        * later in the boot process if a better method is available.
-        */
-#ifdef CONFIG_MMU
-       copy_page = copy_page_slow;
-       clear_page = clear_page_slow;
-#else
-       copy_page = copy_page_nommu;
-       clear_page = clear_page_nommu;
-#endif
-
        after_bootmem = 1;
 
        codesize =  (unsigned long) &_etext - (unsigned long) &_text;
index d15221beaa161ab555cb6b481268651d56570a4f..677dd57f0877dfa0cb0ca6de0025558b2df176de 100644 (file)
 #include <linux/string.h>
 #include <asm/page.h>
 
-void copy_page_nommu(void *to, void *from)
+void copy_page(void *to, void *from)
 {
        memcpy(to, from, PAGE_SIZE);
 }
 
-void clear_page_nommu(void *to)
+void clear_page(void *to)
 {
        memset(to, 0, PAGE_SIZE);
 }
index 93a89841227fcc09ae4057fa85df8268cf01422f..e21b0d12e139ee59ae24702b64bca7a5e9135b2b 100644 (file)
 
 #ifndef __ASSEMBLY__
 
-extern void (*clear_page)(void *to);
-extern void (*copy_page)(void *to, void *from);
-
 extern unsigned long shm_align_mask;
 extern unsigned long max_low_pfn, min_low_pfn;
 extern unsigned long memory_start, memory_end;
 
-#ifdef CONFIG_MMU
-extern void clear_page_slow(void *to);
-extern void copy_page_slow(void *to, void *from);
-#else
-extern void clear_page_nommu(void *to);
-extern void copy_page_nommu(void *to, void *from);
-#endif
+extern void clear_page(void *to);
+extern void copy_page(void *to, void *from);
 
 #if !defined(CONFIG_CACHE_OFF) && defined(CONFIG_MMU) && \
        (defined(CONFIG_CPU_SH4) || defined(CONFIG_SH7705_CACHE_32KB))