
19 Jul
2012
19 Jul
'12
6:52 p.m.
On Thursday 12 July 2012 11:25:13 Simon Glass wrote:
+void lcd_sync(void) +{
- /*
* flush_dcache_range() is declared in common.h but it seems that some
* architectures do not actually implement it. Is there a way to find
* out whether it exists? For now, ARM is safe.
*/
+#ifdef CONFIG_ARM
- int line_length;
- if (lcd_flush_dcache)
flush_dcache_range((u32)lcd_base,
(u32)(lcd_base + lcd_get_size(&line_length)));
+#endif +}
hmm, i think this should be more fine grained
/* Clear the last one */ memset (CONSOLE_ROW_LAST, COLOR_MASK(lcd_color_bg), CONSOLE_ROW_SIZE);
- lcd_sync();
}
this requires only updating one row and not the entire display right ? so we should only flush that one line. seems like other parts suffer similar over- flushing behavior.
+/**
- Set whether we need to flush the dcache when changing the LCD image.
- This defaults to off.
i wonder if this default is correct. perhaps it should default to 1 since setting up custom memory maps to disable cache is fairly specially. -mike