diff options
author | Jason Chen <b02280@freescale.com> | 2011-11-07 16:46:36 +0800 |
---|---|---|
committer | Jason Liu <r64343@freescale.com> | 2012-01-09 21:05:24 +0800 |
commit | 583ebed51f7dec95cbdc90ff238e37eadc1913f2 (patch) | |
tree | 82c2f5d70e8f7357b06aa013005cd0b34fb58809 /drivers/video/mxc/mxc_ipuv3_fb.c | |
parent | bcf83069b5c50c6d2c70022638603e6bedb9daf3 (diff) |
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 <b02280@freescale.com>
Diffstat (limited to 'drivers/video/mxc/mxc_ipuv3_fb.c')
-rw-r--r-- | drivers/video/mxc/mxc_ipuv3_fb.c | 19 |
1 files changed, 10 insertions, 9 deletions
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); |