summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev
diff options
context:
space:
mode:
authorJeevan Shriram <jshriram@codeaurora.org>2014-06-25 11:12:40 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:31:40 -0700
commit87f3edd4381cdb3beaaf4095d7e8d7ea8eb4f730 (patch)
tree6b7c775bc12c8011ebeb420fef11a2d368660b22 /drivers/video/fbdev
parent21c7e77cb73233981cb7b11ce8c4e4b93104dc13 (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.c7
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);