}
 
 
-/* FIXME: Do we have another solution for this ? */
-static void sti_flush(unsigned long from, unsigned long len)
+static void sti_flush(unsigned long start, unsigned long end)
 {
-       flush_data_cache();
-       flush_kernel_dcache_range(from, len);
-       flush_icache_range(from, from+len);
+       flush_icache_range(start, end);
 }
 
 void __devinit
 sti_rom_copy(unsigned long base, unsigned long count, void *dest)
 {
-       unsigned long dest_len = count;
        unsigned long dest_start = (unsigned long) dest;
 
        /* this still needs to be revisited (see arch/parisc/mm/init.c:246) ! */
                dest++;
        }
 
-       sti_flush(dest_start, dest_len);
+       sti_flush(dest_start, (unsigned long)dest);
 }
 
 
 static void __devinit
 sti_bmode_rom_copy(unsigned long base, unsigned long count, void *dest)
 {
-       unsigned long dest_len = count;
        unsigned long dest_start = (unsigned long) dest;
 
        while (count) {
                base += 4;
                dest++;
        }
-       sti_flush(dest_start, dest_len);
+
+       sti_flush(dest_start, (unsigned long)dest);
 }
 
 static struct sti_rom * __devinit