diff options
| author | Jeevan Shriram <jshriram@codeaurora.org> | 2014-06-25 11:12:40 -0700 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:31:40 -0700 |
| commit | 87f3edd4381cdb3beaaf4095d7e8d7ea8eb4f730 (patch) | |
| tree | 6b7c775bc12c8011ebeb420fef11a2d368660b22 /drivers/video/fbdev | |
| parent | 21c7e77cb73233981cb7b11ce8c4e4b93104dc13 (diff) | |
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 <jshriram@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev')
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_fb.c | 7 |
1 files 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); |
