summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2015-07-03 11:58:35 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2015-07-06 12:34:22 +0200
commit55d1fd0247b64b502dd448c369ad396a03a81cc6 (patch)
treed1a9ae7d752a2770a768d0788206f1e2d32ee597 /drivers
parentdd93a9f6ef517eaa1a662146d4cffc87a5772bd2 (diff)
downloadbarebox-55d1fd0247b64b502dd448c369ad396a03a81cc6.tar.gz
barebox-55d1fd0247b64b502dd448c369ad396a03a81cc6.tar.xz
video: stm: use uncached memory
To avoid caching effects on the display use uncached memory. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/stm.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/video/stm.c b/drivers/video/stm.c
index 92bff9cb27..c825092691 100644
--- a/drivers/video/stm.c
+++ b/drivers/video/stm.c
@@ -24,6 +24,8 @@
#include <errno.h>
#include <xfuncs.h>
#include <io.h>
+#include <dma.h>
+#include <asm/mmu.h>
#include <stmp-device.h>
#include <linux/clk.h>
#include <linux/err.h>
@@ -329,8 +331,13 @@ static int stmfb_activate_var(struct fb_info *fb_info)
return -ENOMEM;
fb_info->screen_base = fbi->fixed_screen;
fbi->memory_size = fbi->fixed_screen_size;
+ remap_range(fbi->fixed_screen,
+ fbi->fixed_screen_size,
+ mmu_get_pte_uncached_flags());
} else {
- fb_info->screen_base = xrealloc(fb_info->screen_base, size);
+ fb_info->screen_base = dma_alloc_coherent(size, NULL);
+ if (!fb_info->screen_base)
+ return -ENOMEM;
fbi->memory_size = size;
}