]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00214773 V4L2 output: Restore fb base address after video playback
authorWayne Zou <b36644@freescale.com>
Mon, 25 Jun 2012 04:31:14 +0000 (12:31 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:34:52 +0000 (08:34 +0200)
Restore framebuffer base address after video playback on IPU BG channel

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

index cdf7eb785a646a5bfa79703627abe8ecbfe77f7e..419f418ec62f76d387949710ea2564a2df848910 100644 (file)
@@ -1689,24 +1689,9 @@ static void release_disp_output(struct mxc_vout_output *vout)
 {
        struct fb_info *fbi = vout->fbi;
        struct mxcfb_pos pos;
-       struct ipu_pos ipos;
-       int ret;
 
        if (vout->release)
                return;
-       if (get_ipu_channel(fbi) == MEM_BG_SYNC) {
-               if (vout->tiled_bypass_pp) {
-                       vout->task.output.paddr = vout->disp_bufs[0];
-                       ipos.x = vout->task.input.crop.pos.x;
-                       ipos.y = vout->task.input.crop.pos.y;
-                       ret = show_buf(vout, 0, &ipos);
-                       if (ret < 0)
-                               v4l2_err(vout->vfd->v4l2_dev,
-                                               "show_buf ret %d\n", ret);
-               }
-               goto out;
-       }
-
        console_lock();
        fbi->flags |= FBINFO_MISC_USEREVENT;
        fb_blank(fbi, FB_BLANK_POWERDOWN);
@@ -1717,7 +1702,17 @@ static void release_disp_output(struct mxc_vout_output *vout)
        pos.x = 0;
        pos.y = 0;
        set_window_position(vout, &pos);
-out:
+
+       if (get_ipu_channel(fbi) == MEM_BG_SYNC) {
+               console_lock();
+               fbi->fix.smem_start = vout->disp_bufs[0];
+               fbi->flags |= FBINFO_MISC_USEREVENT;
+               fb_blank(fbi, FB_BLANK_UNBLANK);
+               fbi->flags &= ~FBINFO_MISC_USEREVENT;
+               console_unlock();
+
+       }
+
        vout->release = true;
 }