Add support for selecting the required cache mode for the LCD:
off, write-through or write-back.

Signed-off-by: Simon Glass <s...@chromium.org>
---
Changes in v3:
- Handle a cached frame buffer out of normal U-Boot memory

 drivers/video/tegra.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/drivers/video/tegra.c b/drivers/video/tegra.c
index 25ff64f..2f6655a 100644
--- a/drivers/video/tegra.c
+++ b/drivers/video/tegra.c
@@ -145,6 +145,7 @@ static void update_panel_size(struct fdt_disp_config 
*config)
 void lcd_ctrl_init(void *lcdbase)
 {
        int line_length, size;
+       int type = DCACHE_OFF;
 
        assert(disp_config);
 
@@ -160,6 +161,16 @@ void lcd_ctrl_init(void *lcdbase)
                update_panel_size(disp_config);
        size = lcd_get_size(&line_length);
 
+       /* Set up the LCD caching as requested */
+       if (config.cache_type & FDT_LCD_CACHE_WRITE_THROUGH)
+               type = DCACHE_WRITETHROUGH;
+       else if (config.cache_type & FDT_LCD_CACHE_WRITE_BACK)
+               type = DCACHE_WRITEBACK;
+       mmu_set_region_dcache(disp_config->frame_buffer, size, type);
+
+       /* Enable flushing after LCD writes if requested */
+       lcd_set_flush_dcache(config.cache_type & FDT_LCD_CACHE_FLUSH);
+
        debug("LCD frame buffer at %p\n", lcd_base);
 }
 
-- 
1.7.7.3

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to