aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Chen <b02280@freescale.com>2011-11-21 10:14:01 +0800
committerEric Miao <eric.miao@linaro.org>2011-11-29 16:43:17 +0800
commit8f9282ee34a072f2d2b867412bdb7abf1f43072a (patch)
tree21fee03d3fffa6d2e052e7f8b8b84ad21b11afa5
parentfab73e9de75aaf8020127fba972a8e4c48a77c67 (diff)
downloadlinux-linaro-8f9282ee34a072f2d2b867412bdb7abf1f43072a.tar.gz
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>
-rw-r--r--drivers/media/video/mxc/output/mxc_vout.c9
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 a99e24d1858..9b80e9b435b 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);