aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKyle McMartin <kyle@parisc-linux.org>2007-06-29 02:17:50 -0400
committerKyle McMartin <kyle@minerva.i.cabal.ca>2007-08-27 00:29:23 -0400
commit03b18f1b2afeac76840648b4232d8e53cfb7ec84 (patch)
tree5177edf43d8babd8ba766662dc2b664fdd3afa2e
parentfabb8ff4ffa2b6bf89df8ed598551b6aaf632478 (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>
-rw-r--r--drivers/video/console/sticore.c14
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 ? */ 235static void sti_flush(unsigned long start, unsigned long end)
236static 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
243void __devinit 240void __devinit
244sti_rom_copy(unsigned long base, unsigned long count, void *dest) 241sti_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)
663static void __devinit 659static void __devinit
664sti_bmode_rom_copy(unsigned long base, unsigned long count, void *dest) 660sti_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
678static struct sti_rom * __devinit 674static struct sti_rom * __devinit