aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Chen <b02280@freescale.com>2011-11-15 17:33:15 +0800
committerEric Miao <eric.miao@linaro.org>2011-12-04 23:14:15 +0800
commit654824883be8d61bdaf0a48b2d53c19c5d9e02b9 (patch)
treea31ddc29ead316389751c0365dd91958cc1108a5
parent98bf1041af5eccf7aa6ec00cd153c41a218ceebc (diff)
ENGR00162208 ipuv3 device: fix jitter issue of split mode
if play video with split mode, there is chance to see jitter of split stripe. fix it by correct sync method of split mode kthreads. Signed-off-by: Jason Chen <b02280@freescale.com>
-rw-r--r--drivers/mxc/ipu3/ipu_device.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/mxc/ipu3/ipu_device.c b/drivers/mxc/ipu3/ipu_device.c
index b6b07216c1d..0f68441fc83 100644
--- a/drivers/mxc/ipu3/ipu_device.c
+++ b/drivers/mxc/ipu3/ipu_device.c
@@ -940,8 +940,9 @@ static int split_task_thread(void *data)
t->ret = ipu_queue_sp_task(t);
- while (!kthread_should_stop())
- wait_event_interruptible(t->waitq, t->could_finish);
+ t->could_finish = true;
+
+ wake_up_interruptible(&t->waitq);
return 0;
}
@@ -1174,8 +1175,7 @@ static int queue_split_task(struct ipu_task_entry *t)
return ret;
} else {
for (i = 0; i < size; i++) {
- sp_task[i].could_finish = true;
- wake_up_interruptible(&sp_task[i].waitq);
+ wait_event_interruptible(sp_task[i].waitq, sp_task[i].could_finish);
kthread_stop(sp_task[i].thread);
if (sp_task[i].ret < 0) {
ret = sp_task[i].ret;