summaryrefslogtreecommitdiff
path: root/drivers/video/fsl_dcu_fb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/fsl_dcu_fb.c')
-rw-r--r--drivers/video/fsl_dcu_fb.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/video/fsl_dcu_fb.c b/drivers/video/fsl_dcu_fb.c
index 4ee823e1d3..e7e385a2ed 100644
--- a/drivers/video/fsl_dcu_fb.c
+++ b/drivers/video/fsl_dcu_fb.c
@@ -307,8 +307,10 @@ int fsl_dcu_init(unsigned int xres, unsigned int yres,
info.screen_size =
info.var.xres * info.var.yres * (info.var.bits_per_pixel / 8);
- if (info.screen_size > CONFIG_FSL_DCU_MAX_FB_SIZE)
+ if (info.screen_size > CONFIG_FSL_DCU_MAX_FB_SIZE) {
+ info.screen_size = 0;
return -ENOMEM;
+ }
/* Reserve framebuffer at the end of memory */
gd->fb_base = gd->bd->bi_dram[0].start +
@@ -444,7 +446,7 @@ int fsl_dcu_fixedfb_setup(void *blob)
int ret;
start = gd->bd->bi_dram[0].start;
- size = gd->fb_base - gd->bd->bi_dram[0].start;
+ size = gd->bd->bi_dram[0].size - info.screen_size;
/*
* Align size on section size (1 MiB). The Linux kernel would crash