diff options
author | Stuart Menefy <stuart.menefy@st.com> | 2007-11-30 03:06:36 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2008-01-27 23:18:59 -0500 |
commit | cbaa118ecfd99fc5ed7adbd9c34a30e1c05e3c93 (patch) | |
tree | e60db5c0f3573558c97f39cfab78732220a72e6d /arch/sh/mm/cache-debugfs.c | |
parent | 325df7f20467da07901c4f2b006d3457bba0adec (diff) |
sh: Preparation for uncached jumps through PMB.
Presently most of the 29-bit physical parts do P1/P2 segmentation
with a 1:1 cached/uncached mapping, jumping between the two to
control the caching behaviour. This provides the basic infrastructure
to maintain this behaviour on 32-bit physical parts that don't map
P1/P2 at all, using a shiny new linker section and corresponding
fixmap entry.
Signed-off-by: Stuart Menefy <stuart.menefy@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/mm/cache-debugfs.c')
-rw-r--r-- | arch/sh/mm/cache-debugfs.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/sh/mm/cache-debugfs.c b/arch/sh/mm/cache-debugfs.c index de6d2c9aa477..db6d950b6f5e 100644 --- a/arch/sh/mm/cache-debugfs.c +++ b/arch/sh/mm/cache-debugfs.c | |||
@@ -22,7 +22,8 @@ enum cache_type { | |||
22 | CACHE_TYPE_UNIFIED, | 22 | CACHE_TYPE_UNIFIED, |
23 | }; | 23 | }; |
24 | 24 | ||
25 | static int cache_seq_show(struct seq_file *file, void *iter) | 25 | static int __uses_jump_to_uncached cache_seq_show(struct seq_file *file, |
26 | void *iter) | ||
26 | { | 27 | { |
27 | unsigned int cache_type = (unsigned int)file->private; | 28 | unsigned int cache_type = (unsigned int)file->private; |
28 | struct cache_info *cache; | 29 | struct cache_info *cache; |
@@ -34,11 +35,11 @@ static int cache_seq_show(struct seq_file *file, void *iter) | |||
34 | * Go uncached immediately so we don't skew the results any | 35 | * Go uncached immediately so we don't skew the results any |
35 | * more than we already are.. | 36 | * more than we already are.. |
36 | */ | 37 | */ |
37 | jump_to_P2(); | 38 | jump_to_uncached(); |
38 | 39 | ||
39 | ccr = ctrl_inl(CCR); | 40 | ccr = ctrl_inl(CCR); |
40 | if ((ccr & CCR_CACHE_ENABLE) == 0) { | 41 | if ((ccr & CCR_CACHE_ENABLE) == 0) { |
41 | back_to_P1(); | 42 | back_to_cached(); |
42 | 43 | ||
43 | seq_printf(file, "disabled\n"); | 44 | seq_printf(file, "disabled\n"); |
44 | return 0; | 45 | return 0; |
@@ -104,7 +105,7 @@ static int cache_seq_show(struct seq_file *file, void *iter) | |||
104 | addrstart += cache->way_incr; | 105 | addrstart += cache->way_incr; |
105 | } | 106 | } |
106 | 107 | ||
107 | back_to_P1(); | 108 | back_to_cached(); |
108 | 109 | ||
109 | return 0; | 110 | return 0; |
110 | } | 111 | } |