public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] video: sunxi: Enable cache for the framebuffer
@ 2015-01-31  1:21 Siarhei Siamashka
  2015-01-31 10:34 ` Ian Campbell
  2015-02-02 18:56 ` Hans de Goede
  0 siblings, 2 replies; 4+ messages in thread
From: Siarhei Siamashka @ 2015-01-31  1:21 UTC (permalink / raw)
  To: u-boot

Because the framebuffer resides in a hidden chopped off part of DRAM,
caching is not enabled for this area automatically when the MMU is
configured. So it needs to be set explicitly.

Additionally, the cfb console has a function to check whether the
framebuffer resides in DRAM or not. And the hidden sunxi framebuffer
needs special treatment again.

This fix resolves the sluggish scrolling problem.

Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
---
 drivers/video/cfb_console.c   |  2 +-
 drivers/video/sunxi_display.c | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c
index a81affa..23b50df 100644
--- a/drivers/video/cfb_console.c
+++ b/drivers/video/cfb_console.c
@@ -2090,7 +2090,7 @@ static void *video_logo(void)
 }
 #endif
 
-static int cfb_fb_is_in_dram(void)
+__weak int cfb_fb_is_in_dram(void)
 {
 	bd_t *bd = gd->bd;
 #if defined(CONFIG_ARM) || defined(CONFIG_AVR32) || defined(COFNIG_NDS32) || \
diff --git a/drivers/video/sunxi_display.c b/drivers/video/sunxi_display.c
index f5f24fc..22a1319 100644
--- a/drivers/video/sunxi_display.c
+++ b/drivers/video/sunxi_display.c
@@ -1060,6 +1060,12 @@ static const char *sunxi_get_mon_desc(enum sunxi_monitor monitor)
 	return NULL; /* never reached */
 }
 
+/* The framebuffer is in DRAM, even though it is in the hidden part of it */
+int cfb_fb_is_in_dram(void)
+{
+	return 1;
+}
+
 void *video_hw_init(void)
 {
 	static GraphicDevice *graphic_device = &sunxi_display.graphic_device;
@@ -1079,6 +1085,10 @@ void *video_hw_init(void)
 	       CONFIG_SUNXI_FB_SIZE >> 10);
 	gd->fb_base = gd->ram_top;
 
+	mmu_set_region_dcache_behaviour(gd->fb_base,
+					CONFIG_SUNXI_FB_SIZE,
+					DCACHE_WRITEBACK);
+
 	video_get_ctfb_res_modes(RES_MODE_1024x768, 24, &mode,
 				 &sunxi_display.depth, &options);
 #ifdef CONFIG_VIDEO_HDMI
-- 
2.0.5

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-02-02 18:56 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-31  1:21 [U-Boot] [PATCH] video: sunxi: Enable cache for the framebuffer Siarhei Siamashka
2015-01-31 10:34 ` Ian Campbell
2015-01-31 11:46   ` Siarhei Siamashka
2015-02-02 18:56 ` Hans de Goede

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox