aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Chen <b02280@freescale.com>2011-11-15 17:33:15 +0800
committerJason Chen <b02280@freescale.com>2011-11-16 16:32:06 +0800
commit0d60afe79ea354e3bcb6b136e66dc1eff9f3102b (patch)
treeff5427219b1a4cfe4bf4e1006868c573d8983cdd
parentbb59decb05eac1a051f1758ce98e757000ae24d0 (diff)
downloadlinux-linaro-0d60afe79ea354e3bcb6b136e66dc1eff9f3102b.tar.gz
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;