Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
a58e1a2a
Commit
a58e1a2a
authored
Aug 15, 2009
by
Paul Mundt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sh: Convert SH-2A to new cacheflush interface.
Signed-off-by:
Paul Mundt
<
lethal@linux-sh.org
>
parent
109b44a8
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
19 additions
and
34 deletions
+19
-34
arch/sh/include/cpu-sh2a/cpu/cacheflush.h
arch/sh/include/cpu-sh2a/cpu/cacheflush.h
+0
-30
arch/sh/mm/cache-sh2a.c
arch/sh/mm/cache-sh2a.c
+13
-4
arch/sh/mm/cache.c
arch/sh/mm/cache.c
+6
-0
No files found.
arch/sh/include/cpu-sh2a/cpu/cacheflush.h
deleted
100644 → 0
View file @
109b44a8
#ifndef __ASM_CPU_SH2A_CACHEFLUSH_H
#define __ASM_CPU_SH2A_CACHEFLUSH_H
/*
* Cache flushing:
*
* - flush_cache_all() flushes entire cache
* - flush_cache_mm(mm) flushes the specified mm context's cache lines
* - flush_cache_dup mm(mm) handles cache flushing when forking
* - flush_cache_page(mm, vmaddr, pfn) flushes a single page
* - flush_cache_range(vma, start, end) flushes a range of pages
*
* - flush_dcache_page(pg) flushes(wback&invalidates) a page for dcache
* - flush_icache_range(start, end) flushes(invalidates) a range for icache
* - flush_icache_page(vma, pg) flushes(invalidates) a page for icache
*
* Caches are indexed (effectively) by physical address on SH-2, so
* we don't need them.
*/
#define flush_cache_all() do { } while (0)
#define flush_cache_mm(mm) do { } while (0)
#define flush_cache_dup_mm(mm) do { } while (0)
#define flush_cache_range(vma, start, end) do { } while (0)
#define flush_cache_page(vma, vmaddr, pfn) do { } while (0)
#define flush_dcache_page(page) do { } while (0)
void
flush_icache_range
(
unsigned
long
start
,
unsigned
long
end
);
#define flush_icache_page(vma,pg) do { } while (0)
#define flush_cache_sigtramp(vaddr) do { } while (0)
#endif
/* __ASM_CPU_SH2A_CACHEFLUSH_H */
arch/sh/mm/cache-sh2a.c
View file @
a58e1a2a
...
...
@@ -15,7 +15,7 @@
#include <asm/cacheflush.h>
#include <asm/io.h>
void
__flush_wback_region
(
void
*
start
,
int
size
)
static
void
sh2a
__flush_wback_region
(
void
*
start
,
int
size
)
{
unsigned
long
v
;
unsigned
long
begin
,
end
;
...
...
@@ -44,7 +44,7 @@ void __flush_wback_region(void *start, int size)
local_irq_restore
(
flags
);
}
void
__flush_purge_region
(
void
*
start
,
int
size
)
static
void
sh2a
__flush_purge_region
(
void
*
start
,
int
size
)
{
unsigned
long
v
;
unsigned
long
begin
,
end
;
...
...
@@ -65,7 +65,7 @@ void __flush_purge_region(void *start, int size)
local_irq_restore
(
flags
);
}
void
__flush_invalidate_region
(
void
*
start
,
int
size
)
static
void
sh2a
__flush_invalidate_region
(
void
*
start
,
int
size
)
{
unsigned
long
v
;
unsigned
long
begin
,
end
;
...
...
@@ -97,7 +97,7 @@ void __flush_invalidate_region(void *start, int size)
}
/* WBack O-Cache and flush I-Cache */
void
flush_icache_range
(
unsigned
long
start
,
unsigned
long
end
)
static
void
sh2a_
flush_icache_range
(
unsigned
long
start
,
unsigned
long
end
)
{
unsigned
long
v
;
unsigned
long
flags
;
...
...
@@ -127,3 +127,12 @@ void flush_icache_range(unsigned long start, unsigned long end)
back_to_cached
();
local_irq_restore
(
flags
);
}
void
__init
sh2a_cache_init
(
void
)
{
flush_icache_range
=
sh2a_flush_icache_range
;
__flush_wback_region
=
sh2a__flush_wback_region
;
__flush_purge_region
=
sh2a__flush_purge_region
;
__flush_invalidate_region
=
sh2a__flush_invalidate_region
;
}
arch/sh/mm/cache.c
View file @
a58e1a2a
...
...
@@ -250,6 +250,12 @@ void __init cpu_cache_init(void)
sh2_cache_init
();
}
if
(
boot_cpu_data
.
family
==
CPU_FAMILY_SH2A
)
{
extern
void
__weak
sh2a_cache_init
(
void
);
sh2a_cache_init
();
}
if
((
boot_cpu_data
.
family
==
CPU_FAMILY_SH4
)
||
(
boot_cpu_data
.
family
==
CPU_FAMILY_SH4A
)
||
(
boot_cpu_data
.
family
==
CPU_FAMILY_SH4AL_DSP
))
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment