diff options
author | Kyle McMartin <kyle@parisc-linux.org> | 2007-06-29 02:17:50 -0400 |
---|---|---|
committer | Kyle McMartin <kyle@minerva.i.cabal.ca> | 2007-08-27 00:29:23 -0400 |
commit | 03b18f1b2afeac76840648b4232d8e53cfb7ec84 (patch) | |
tree | 5177edf43d8babd8ba766662dc2b664fdd3afa2e /drivers | |
parent | fabb8ff4ffa2b6bf89df8ed598551b6aaf632478 (diff) |
[PARISC] Clean up sti_flush
sti_flush is supposed to flush the caches so we can execute the STI rom
we copied to memory. Anything more than flush_icache_range is overkill.
Fixes a missing symbol when built as a module.
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/console/sticore.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/drivers/video/console/sticore.c b/drivers/video/console/sticore.c index 870017d44970..e9ab657f0bb7 100644 --- a/drivers/video/console/sticore.c +++ b/drivers/video/console/sticore.c | |||
@@ -232,18 +232,14 @@ sti_bmove(struct sti_struct *sti, int src_y, int src_x, | |||
232 | } | 232 | } |
233 | 233 | ||
234 | 234 | ||
235 | /* FIXME: Do we have another solution for this ? */ | 235 | static void sti_flush(unsigned long start, unsigned long end) |
236 | static void sti_flush(unsigned long from, unsigned long len) | ||
237 | { | 236 | { |
238 | flush_data_cache(); | 237 | flush_icache_range(start, end); |
239 | flush_kernel_dcache_range(from, len); | ||
240 | flush_icache_range(from, from+len); | ||
241 | } | 238 | } |
242 | 239 | ||
243 | void __devinit | 240 | void __devinit |
244 | sti_rom_copy(unsigned long base, unsigned long count, void *dest) | 241 | sti_rom_copy(unsigned long base, unsigned long count, void *dest) |
245 | { | 242 | { |
246 | unsigned long dest_len = count; | ||
247 | unsigned long dest_start = (unsigned long) dest; | 243 | unsigned long dest_start = (unsigned long) dest; |
248 | 244 | ||
249 | /* this still needs to be revisited (see arch/parisc/mm/init.c:246) ! */ | 245 | /* this still needs to be revisited (see arch/parisc/mm/init.c:246) ! */ |
@@ -260,7 +256,7 @@ sti_rom_copy(unsigned long base, unsigned long count, void *dest) | |||
260 | dest++; | 256 | dest++; |
261 | } | 257 | } |
262 | 258 | ||
263 | sti_flush(dest_start, dest_len); | 259 | sti_flush(dest_start, (unsigned long)dest); |
264 | } | 260 | } |
265 | 261 | ||
266 | 262 | ||
@@ -663,7 +659,6 @@ sti_bmode_font_raw(struct sti_cooked_font *f) | |||
663 | static void __devinit | 659 | static void __devinit |
664 | sti_bmode_rom_copy(unsigned long base, unsigned long count, void *dest) | 660 | sti_bmode_rom_copy(unsigned long base, unsigned long count, void *dest) |
665 | { | 661 | { |
666 | unsigned long dest_len = count; | ||
667 | unsigned long dest_start = (unsigned long) dest; | 662 | unsigned long dest_start = (unsigned long) dest; |
668 | 663 | ||
669 | while (count) { | 664 | while (count) { |
@@ -672,7 +667,8 @@ sti_bmode_rom_copy(unsigned long base, unsigned long count, void *dest) | |||
672 | base += 4; | 667 | base += 4; |
673 | dest++; | 668 | dest++; |
674 | } | 669 | } |
675 | sti_flush(dest_start, dest_len); | 670 | |
671 | sti_flush(dest_start, (unsigned long)dest); | ||
676 | } | 672 | } |
677 | 673 | ||
678 | static struct sti_rom * __devinit | 674 | static struct sti_rom * __devinit |