diff options
author | Jason Chen <b02280@freescale.com> | 2011-11-21 10:14:01 +0800 |
---|---|---|
committer | Jason Liu <r64343@freescale.com> | 2012-01-09 21:07:34 +0800 |
commit | de4ebae4b0b26ff7d88b813ab4294529741523c7 (patch) | |
tree | aee5400d33538449660299c25ba4d9e860afe4b8 /drivers/media | |
parent | 5a05652bcc9616bd9ac2054da8d1f5b523c3fc28 (diff) |
ENGR00162664 mxc_vout: modify pp bypass condition
1. pp bypass's rotate value should be smaller than IPU_ROTATE_HORIZ_FLIP.
2. use del_timer_sync instead of del_timer for SMP.
Signed-off-by: Jason Chen <b02280@freescale.com>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/video/mxc/output/mxc_vout.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/media/video/mxc/output/mxc_vout.c b/drivers/media/video/mxc/output/mxc_vout.c index d7e6fa3e02c3..e1116d51c58c 100644 --- a/drivers/media/video/mxc/output/mxc_vout.c +++ b/drivers/media/video/mxc/output/mxc_vout.c @@ -318,7 +318,7 @@ static bool is_pp_bypass(struct mxc_vout_output *vout) (vout->task.input.height == vout->task.output.height) && (vout->task.input.crop.w == vout->task.output.crop.w) && (vout->task.input.crop.h == vout->task.output.crop.h) && - (vout->task.output.rotate < IPU_ROTATE_90_RIGHT) && + (vout->task.output.rotate < IPU_ROTATE_HORIZ_FLIP) && !vout->task.input.deinterlace.enable) { if (vout->disp_support_csc) return true; @@ -329,7 +329,7 @@ static bool is_pp_bypass(struct mxc_vout_output *vout) (vout->task.output.crop.w == vout->task.output.width) && (vout->task.input.crop.h == vout->task.output.crop.h) && (vout->task.output.crop.h == vout->task.output.height) && - (vout->task.output.rotate < IPU_ROTATE_90_RIGHT) && + (vout->task.output.rotate < IPU_ROTATE_HORIZ_FLIP) && !vout->task.input.deinterlace.enable) { if (vout->disp_support_csc) return true; @@ -460,7 +460,7 @@ static void disp_work_func(struct work_struct *work) ret = show_buf(vout, vout->frame_count % FB_BUFS); if (ret < 0) - v4l2_warn(vout->vfd->v4l2_dev, "show buf with ret %d\n", ret); + v4l2_dbg(1, debug, vout->vfd->v4l2_dev, "show buf with ret %d\n", ret); mutex_unlock(&vout->task_lock); @@ -1254,6 +1254,7 @@ static int config_disp_output(struct mxc_vout_output *vout) var.yres_virtual = vout->task.input.height; else var.yres_virtual = var.yres; + var.rotate = vout->task.output.rotate; } else { fb_num = FB_BUFS; var.xres_virtual = var.xres; @@ -1362,7 +1363,7 @@ static int mxc_vidioc_streamoff(struct file *file, void *fh, enum v4l2_buf_type int ret = 0; if (q->streaming) { - del_timer(&vout->timer); + del_timer_sync(&vout->timer); cancel_work_sync(&vout->disp_work); flush_workqueue(vout->v4l_wq); |