summaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-12-20 11:25:53 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2013-12-20 11:32:08 +0100
commit8a01dea639e4530dad1a945b1d5efbe903a9407e (patch)
treeb1a5d525e87b4977bdbf2a2f5e8f473c018d872c /drivers/video
parent96ec430eeb5b60241ccc3c8e828db88aa94c032c (diff)
downloadbarebox-8a01dea639e4530dad1a945b1d5efbe903a9407e.tar.gz
barebox-8a01dea639e4530dad1a945b1d5efbe903a9407e.tar.xz
video: ipufb: Use uncached memory for framebuffer
Otherwise funny caching artifacts can occur on the screen. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/imx-ipu-fb.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/video/imx-ipu-fb.c b/drivers/video/imx-ipu-fb.c
index 18a70521de..7276647382 100644
--- a/drivers/video/imx-ipu-fb.c
+++ b/drivers/video/imx-ipu-fb.c
@@ -26,6 +26,7 @@
#include <malloc.h>
#include <errno.h>
#include <asm-generic/div64.h>
+#include <asm/mmu.h>
#include <mach/imx-ipu-fb.h>
#include <linux/clk.h>
#include <linux/err.h>
@@ -1022,8 +1023,12 @@ static int imxfb_probe(struct device_d *dev)
* memory for screen usage
*/
fbi->info.screen_base = pdata->framebuffer;
- if (fbi->info.screen_base == NULL) {
- fbi->info.screen_base = malloc(fbi->info.screen_size);
+ if (fbi->info.screen_base) {
+ remap_range(fbi->info.screen_base,
+ fbi->info.screen_size,
+ mmu_get_pte_uncached_flags());
+ } else {
+ fbi->info.screen_base = dma_alloc_coherent(fbi->info.screen_size);
if (!fbi->info.screen_base)
return -ENOMEM;
}