From 87f3edd4381cdb3beaaf4095d7e8d7ea8eb4f730 Mon Sep 17 00:00:00 2001 From: Jeevan Shriram Date: Wed, 25 Jun 2014 11:12:40 -0700 Subject: mdss: fb: update smem_len when user updates parameters There is an ioctl for userspace to update the variable parameters. Frame buffer driver has to update the shared memory length according to the new variable information. Change-Id: Ic24ee3e4b1101b4e1ef4e9db2182602aa5175812 Signed-off-by: Jeevan Shriram --- drivers/video/fbdev/msm/mdss_fb.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/video/fbdev/msm/mdss_fb.c b/drivers/video/fbdev/msm/mdss_fb.c index 083195fc6415..85da82eaef63 100644 --- a/drivers/video/fbdev/msm/mdss_fb.c +++ b/drivers/video/fbdev/msm/mdss_fb.c @@ -1278,7 +1278,7 @@ static int mdss_fb_fbmem_ion_mmap(struct fb_info *info, } req_size = vma->vm_end - vma->vm_start; - fb_size = mfd->fbi->fix.line_length * mfd->fbi->var.yres * MDSS_FB_NUM; + fb_size = mfd->fbi->fix.smem_len; if (req_size > fb_size) { pr_warn("requested map is greater than framebuffer"); return -EOVERFLOW; @@ -1296,12 +1296,10 @@ static int mdss_fb_fbmem_ion_mmap(struct fb_info *info, if (IS_ERR(table)) { pr_err("Unable to get sg_table from ion:%ld\n", PTR_ERR(table)); mfd->fbi->screen_base = NULL; - mfd->fbi->fix.smem_len = 0; return PTR_ERR(table); } else if (!table) { pr_err("sg_list is NULL\n"); mfd->fbi->screen_base = NULL; - mfd->fbi->fix.smem_len = 0; return -EINVAL; } @@ -1452,7 +1450,6 @@ static int mdss_fb_alloc_fbmem_iommu(struct msm_fb_data_type *mfd, int dom) pr_debug("fbmem is not reserved for %s\n", pdev->name); mfd->fbi->screen_base = NULL; mfd->fbi->fix.smem_start = 0; - mfd->fbi->fix.smem_len = 0; return 0; } else { const u32 *addr; @@ -2623,6 +2620,8 @@ static int mdss_fb_set_par(struct fb_info *info) else mfd->fbi->fix.line_length = var->xres * var->bits_per_pixel / 8; + mfd->fbi->fix.smem_len = mfd->fbi->fix.line_length * + mfd->fbi->var.yres_virtual; if (mfd->panel_reconfig || (mfd->fb_imgType != old_imgType)) { mdss_fb_blank_sub(FB_BLANK_POWERDOWN, info, mfd->op_enable); -- cgit v1.2.3