From 7a60c4c1f1d5be97bdb8d27f3886e0d53f53c4f2 Mon Sep 17 00:00:00 2001 From: Wayne Zou Date: Mon, 25 Jun 2012 12:31:14 +0800 Subject: [PATCH] ENGR00214773 V4L2 output: Restore fb base address after video playback Restore framebuffer base address after video playback on IPU BG channel Signed-off-by: Wayne Zou --- drivers/media/video/mxc/output/mxc_vout.c | 27 +++++++++-------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/drivers/media/video/mxc/output/mxc_vout.c b/drivers/media/video/mxc/output/mxc_vout.c index cdf7eb785a64..419f418ec62f 100644 --- a/drivers/media/video/mxc/output/mxc_vout.c +++ b/drivers/media/video/mxc/output/mxc_vout.c @@ -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; } -- 2.39.5