ionvideo: Fixed fillbuffer failure causes throwing buffer

PD#152274: Fixed fillbuffer failure causes throwing buffer

Change-Id: Icafef860f57073ba2fc8417e2287f46c9acf9f72
Signed-off-by: Renjiang Han <renjiang.han@amlogic.com>
This commit is contained in:
Renjiang Han
2017-10-31 17:22:45 +08:00
committed by Jianxin Pan
parent 5e1410d56b
commit 9b26ee0dc9

View File

@@ -386,17 +386,20 @@ static void ionvideo_thread_tick(struct ionvideo_dev *dev)
return;
}
mutex_lock(&dev->mutex_input);
if (v4l2q_empty(&dev->input_queue)) {
buf = v4l2q_peek(&dev->input_queue);
if (buf == NULL) {
dprintk(dev, 3, "No active queue to serve\n");
mutex_unlock(&dev->mutex_input);
schedule_timeout_interruptible(msecs_to_jiffies(20));
return;
}
buf = v4l2q_pop(&dev->input_queue);
mutex_unlock(&dev->mutex_input);
/* Fill buffer */
if (ionvideo_fillbuff(dev, buf))
return;
mutex_lock(&dev->mutex_input);
buf = v4l2q_pop(&dev->input_queue);
mutex_unlock(&dev->mutex_input);
dev->vf_wait_cnt = 0;
mutex_lock(&dev->mutex_output);