]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00181670 V4L2: Fix bug:when ubuntu start up, print some fb error messages
authorWayne Zou <b36644@freescale.com>
Mon, 7 May 2012 08:57:30 +0000 (16:57 +0800)
committerOliver Wendt <ow@karo-electronics.de>
Mon, 30 Sep 2013 12:11:44 +0000 (14:11 +0200)
If only called mxc_vout_open/mxc_vout_release, fb_smem_len are uninitialized.
When ubuntu start up, print some error messages:

mxc_sdc_fb mxc_sdc_fb.1: Unable to allocate framebuffer memory
mxc_v4l2_output mxc_v4l2_output.0: ERR: fb_set_var.
mxc_sdc_fb mxc_sdc_fb.0: Unable to allocate framebuffer memory
mxc_v4l2_output mxc_v4l2_output.0: ERR: fb_set_var.

Signed-off-by: Wayne Zou <b36644@freescale.com>
drivers/media/video/mxc/output/mxc_vout.c

index aebe57fda0c5c1d0d76c9d09e516fc8956e2f215..e3e9483ac70c5cd580e35cbb8c65019c6f85143c 100644 (file)
@@ -1675,16 +1675,18 @@ static void release_disp_output(struct mxc_vout_output *vout)
        set_window_position(vout, &pos);
 
        if (get_ipu_channel(fbi) == MEM_BG_SYNC) {
-               console_lock();
-               fbi->fix.smem_start = vout->fb_smem_start;
-               fbi->fix.smem_len = vout->fb_smem_len;
-               vout->fb_var.activate |= FB_ACTIVATE_FORCE;
-               fbi->flags |= FBINFO_MISC_USEREVENT;
-               ret = fb_set_var(fbi, &vout->fb_var);
-               fbi->flags &= ~FBINFO_MISC_USEREVENT;
-               console_unlock();
-               if (ret < 0)
-                       v4l2_err(vout->vfd->v4l2_dev, "ERR: fb_set_var.\n");
+               if ((vout->fb_smem_len != 0) && (vout->fb_smem_start != 0)) {
+                       console_lock();
+                       fbi->fix.smem_start = vout->fb_smem_start;
+                       fbi->fix.smem_len = vout->fb_smem_len;
+                       vout->fb_var.activate |= FB_ACTIVATE_FORCE;
+                       fbi->flags |= FBINFO_MISC_USEREVENT;
+                       ret = fb_set_var(fbi, &vout->fb_var);
+                       fbi->flags &= ~FBINFO_MISC_USEREVENT;
+                       console_unlock();
+                       if (ret < 0)
+                               v4l2_err(vout->vfd->v4l2_dev, "ERR: fb_set_var.\n");
+               }
                console_lock();
                fbi->flags |= FBINFO_MISC_USEREVENT;
                fb_blank(fbi, FB_BLANK_UNBLANK);