From: Wayne Zou Date: Mon, 25 Jun 2012 04:31:14 +0000 (+0800) Subject: ENGR00214773 V4L2 output: Restore fb base address after video playback X-Git-Tag: v3.0.35-fsl~864 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=7a60c4c1f1d5be97bdb8d27f3886e0d53f53c4f2;p=karo-tx-linux.git 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 --- 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; }