From 66540f67e794fa58f7d32e8850e43676b471a312 Mon Sep 17 00:00:00 2001 From: Jason Chen Date: Mon, 7 Nov 2011 16:46:36 +0800 Subject: ENGR00161526 mxc v4l2 output: 720p ic bypass output may failed in block Repeat play with below cmdline: /unit_tests/mxc_v4l2_output.out -iw 1280 -ih 720 -ow 1280 -oh 720 -fr 10 -l 1 /unit_tests/720p.yuv Found the ipu update offset function cause this issue, it can be work-around by setting it only when value changed. Signed-off-by: Jason Chen --- drivers/video/mxc/mxc_ipuv3_fb.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'drivers/video/mxc/mxc_ipuv3_fb.c') diff --git a/drivers/video/mxc/mxc_ipuv3_fb.c b/drivers/video/mxc/mxc_ipuv3_fb.c index 11e67449fea9..74e4077600b7 100644 --- a/drivers/video/mxc/mxc_ipuv3_fb.c +++ b/drivers/video/mxc/mxc_ipuv3_fb.c @@ -1234,15 +1234,16 @@ mxcfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info) } /* update u/v offset */ - ipu_update_channel_offset(mxc_fbi->ipu, mxc_fbi->ipu_ch, - IPU_INPUT_BUFFER, - bpp_to_pixfmt(info), - info->var.xres_virtual, - info->var.yres_virtual, - info->var.xres_virtual, - 0, 0, - var->yoffset, - var->xoffset); + if (info->var.xres_virtual > info->var.xres) + ipu_update_channel_offset(mxc_fbi->ipu, mxc_fbi->ipu_ch, + IPU_INPUT_BUFFER, + bpp_to_pixfmt(info), + info->var.xres_virtual, + info->var.yres_virtual, + info->var.xres_virtual, + 0, 0, + var->yoffset, + var->xoffset); ipu_select_buffer(mxc_fbi->ipu, mxc_fbi->ipu_ch, IPU_INPUT_BUFFER, mxc_fbi->cur_ipu_buf); -- cgit v1.2.3