summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Chen <b02280@freescale.com>2010-07-19 16:22:07 +0800
committerJason Chen <b02280@freescale.com>2010-07-20 10:18:16 +0800
commit2eab3fc2d3e03427f4bd2cd58050133b0fc785b6 (patch)
tree5be20f5819a00c9177850f56a0fcb689360439eb
parentecc2b5564449f67bf52ca2f27ed8a9b357623941 (diff)
ENGR00125275 v4l2 output:disable icbypass for input right crop case
If do input right-side crop and input/output are in the same size, v4l2 driver will enable ic_bypass, but after enable it, the output is not correct. Signed-off-by: Jason Chen <b02280@freescale.com>
-rw-r--r--drivers/media/video/mxc/output/mxc_v4l2_output.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/drivers/media/video/mxc/output/mxc_v4l2_output.c b/drivers/media/video/mxc/output/mxc_v4l2_output.c
index d5d267259024..cdaade4d81a0 100644
--- a/drivers/media/video/mxc/output/mxc_v4l2_output.c
+++ b/drivers/media/video/mxc/output/mxc_v4l2_output.c
@@ -1267,6 +1267,8 @@ static int mxc_v4l2out_streamon(vout_data * vout)
vout->xres == out_width &&
vout->yres == out_height &&
ipu_can_rotate_in_place(vout->rotate) &&
+ (vout->bytesperline ==
+ bytes_per_pixel(vout->v2f.fmt.pix.pixelformat) * out_width) &&
!INTERLACED_CONTENT(vout)) {
vout->ic_bypass = 1;
} else {
@@ -1280,18 +1282,6 @@ static int mxc_v4l2out_streamon(vout_data * vout)
vout->ic_bypass = 0;
#endif
- /*
- * We are using IC to do input cropping.
- * We don't access v4l2 buffer if source video is interlaced,
- * because the buffer index may be -1.
- */
- if (!INTERLACED_CONTENT(vout) &&
- (vout->queue_buf_paddr[vout->ipu_buf[0]] !=
- vout->v4l2_bufs[vout->ipu_buf[0]].m.offset ||
- vout->queue_buf_paddr[vout->ipu_buf[1]] !=
- vout->v4l2_bufs[vout->ipu_buf[1]].m.offset))
- vout->ic_bypass = 0;
-
if (fbi->fbops->fb_ioctl) {
old_fs = get_fs();
set_fs(KERNEL_DS);