aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2009-08-15 11:53:56 -0400
committerPaul Mundt <lethal@linux-sh.org>2009-08-15 11:53:56 -0400
commit65305ae816ca17a38340aef0ccc92d0c127acccf (patch)
treeeb79f5942b85e857a2b0d09271253495356d5488 /arch
parenteccee7457df2b1e1505522ab0064e577e16eed75 (diff)
sh: Convert cache disabled SH-5 over to new cache interface.
The caches enabled case needs more work, but is presently broken regardless, so this can be done incrementally. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/sh/include/asm/page.h8
-rw-r--r--arch/sh/include/cpu-sh5/cpu/cacheflush.h25
-rw-r--r--arch/sh/mm/Makefile_642
-rw-r--r--arch/sh/mm/tlbflush_64.c5
4 files changed, 1 insertions, 39 deletions
diff --git a/arch/sh/include/asm/page.h b/arch/sh/include/asm/page.h
index a316eeb50b39..81bffc0d6860 100644
--- a/arch/sh/include/asm/page.h
+++ b/arch/sh/include/asm/page.h
@@ -63,20 +63,12 @@ extern void copy_page(void *to, void *from);
63struct page; 63struct page;
64struct vm_area_struct; 64struct vm_area_struct;
65 65
66#if defined(CONFIG_CPU_SH5)
67extern void clear_user_page(void *to, unsigned long address, struct page *page);
68extern void copy_user_page(void *to, void *from, unsigned long address,
69 struct page *page);
70
71#else
72extern void copy_user_highpage(struct page *to, struct page *from, 66extern void copy_user_highpage(struct page *to, struct page *from,
73 unsigned long vaddr, struct vm_area_struct *vma); 67 unsigned long vaddr, struct vm_area_struct *vma);
74#define __HAVE_ARCH_COPY_USER_HIGHPAGE 68#define __HAVE_ARCH_COPY_USER_HIGHPAGE
75extern void clear_user_highpage(struct page *page, unsigned long vaddr); 69extern void clear_user_highpage(struct page *page, unsigned long vaddr);
76#define clear_user_highpage clear_user_highpage 70#define clear_user_highpage clear_user_highpage
77 71
78#endif
79
80/* 72/*
81 * These are used to make use of C type-checking.. 73 * These are used to make use of C type-checking..
82 */ 74 */
diff --git a/arch/sh/include/cpu-sh5/cpu/cacheflush.h b/arch/sh/include/cpu-sh5/cpu/cacheflush.h
deleted file mode 100644
index 202f637a0e17..000000000000
--- a/arch/sh/include/cpu-sh5/cpu/cacheflush.h
+++ /dev/null
@@ -1,25 +0,0 @@
1#ifndef __ASM_SH_CPU_SH5_CACHEFLUSH_H
2#define __ASM_SH_CPU_SH5_CACHEFLUSH_H
3
4#ifndef __ASSEMBLY__
5
6extern void flush_cache_all(void);
7extern void flush_cache_mm(struct mm_struct *mm);
8extern void flush_cache_sigtramp(unsigned long vaddr);
9extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start,
10 unsigned long end);
11extern void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn);
12extern void flush_dcache_page(struct page *pg);
13extern void flush_icache_range(unsigned long start, unsigned long end);
14
15/* XXX .. */
16extern void (*__flush_wback_region)(void *start, int size);
17extern void (*__flush_purge_region)(void *start, int size);
18extern void (*__flush_invalidate_region)(void *start, int size);
19
20#define flush_cache_dup_mm(mm) flush_cache_mm(mm)
21#define flush_icache_page(vma, page) do { } while (0)
22
23#endif /* __ASSEMBLY__ */
24
25#endif /* __ASM_SH_CPU_SH5_CACHEFLUSH_H */
diff --git a/arch/sh/mm/Makefile_64 b/arch/sh/mm/Makefile_64
index 4d5ed245ef47..dd104c4fffa2 100644
--- a/arch/sh/mm/Makefile_64
+++ b/arch/sh/mm/Makefile_64
@@ -2,7 +2,7 @@
2# Makefile for the Linux SuperH-specific parts of the memory manager. 2# Makefile for the Linux SuperH-specific parts of the memory manager.
3# 3#
4 4
5obj-y := init.o consistent.o mmap.o 5obj-y := cache.o consistent.o init.o kmap.o mmap.o
6 6
7mmu-y := nommu.o extable_32.o 7mmu-y := nommu.o extable_32.o
8mmu-$(CONFIG_MMU) := fault_64.o ioremap_64.o tlbflush_64.o tlb-sh5.o \ 8mmu-$(CONFIG_MMU) := fault_64.o ioremap_64.o tlbflush_64.o tlb-sh5.o \
diff --git a/arch/sh/mm/tlbflush_64.c b/arch/sh/mm/tlbflush_64.c
index fa5a95a062d0..2dcc48528f7a 100644
--- a/arch/sh/mm/tlbflush_64.c
+++ b/arch/sh/mm/tlbflush_64.c
@@ -470,8 +470,3 @@ void local_flush_tlb_kernel_range(unsigned long start, unsigned long end)
470void __update_tlb(struct vm_area_struct *vma, unsigned long address, pte_t pte) 470void __update_tlb(struct vm_area_struct *vma, unsigned long address, pte_t pte)
471{ 471{
472} 472}
473
474void __update_cache(struct vm_area_struct *vma,
475 unsigned long address, pte_t pte)
476{
477}