Hello,
On i.MX8 the V4L2 driver dqueue used
static int __vb2_wait_for_done_vb(struct vb2_queue *q, int nonblocking)
and if application used blocking mode,data not fill in dqueue buffer it will blocking
ret = wait_event_interruptible(q->done_wq,
!list_empty(&q->done_list) || !q->streaming ||
q->error);
But On i.MX6 the V4L2 driver is
static int mxc_v4l_dqueue(cam_data *cam, struct v4l2_buffer *buf)
It blocking mode has system timeout,when time out it will return,application will not blocking
if (!wait_event_interruptible_timeout(cam->enc_queue,
cam->enc_counter != 0,
10 * HZ)) {
pr_err("ERROR: v4l2 capture: mxc_v4l_dqueue timeout "
"enc_counter %x\n",
cam->enc_counter);
return -ETIME;
I want to ask does i.MX8 V4L2 dqueue driver can use func wait_event_interruptible_timeout?
add timeout in blocking mode make application not block.
If can pls give patch to modify.
Thanks