summaryrefslogtreecommitdiff
path: root/drivers/video
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2011-06-07 11:30:37 -0700
committerSimon Glass <sjg@chromium.org>2011-08-29 10:39:17 -0700
commit2f7a0c97f1d656a8731a1ad570abf8831ce81758 (patch)
tree6be94d51e2a537e9ac6e79a18f42843ce007207f /drivers/video
parentec735e197ce59c8c6830df819759a0b08d8a1195 (diff)
tegra2: Make cache write-through for LCD frame buffer
We want the display to be uncached, or use a write-through cache. Preliminary testing shows a very small advantage for write-through so this has been chosen. We can adjust later if needed. BUG=chromium-os:14082 TEST=build and boot on Seaboard, see that LCD updates properly now Change-Id: I3ca076f0c1c5bc15f0965f1b7b595db9a5e5828c Reviewed-on: http://gerrit.chromium.org/gerrit/2241 Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/tegra2.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/video/tegra2.c b/drivers/video/tegra2.c
index b69b7c3af7..9b6f7bdcef 100644
--- a/drivers/video/tegra2.c
+++ b/drivers/video/tegra2.c
@@ -28,6 +28,7 @@
#include <asm/arch/power.h>
#include <asm/arch/pwfm.h>
#include <asm/arch/display.h>
+#include <asm/system.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -183,6 +184,7 @@ static void update_panel_size(struct fdt_lcd *config)
void lcd_ctrl_init(void *lcdbase)
{
struct fdt_lcd config;
+ int line_length;
/* get panel details */
if (fdt_decode_lcd(gd->blob, &config)) {
@@ -201,6 +203,9 @@ void lcd_ctrl_init(void *lcdbase)
/* call board specific hw init */
init_lcd(&config);
+ mmu_set_region_dcache(config.frame_buffer,
+ lcd_get_size(&line_length), DCACHE_WRITETHROUGH);
+
debug("LCD frame buffer at %p\n", lcd_base);
}