Hi Hans On Mon, Sep 02, 2024 at 10:31:23AM GMT, Hans Verkuil wrote: > Without these ops the v4l2-compliance blocking wait test will fail. > These ops are required to ensure that when VIDIOC_DQBUF has to > wait for buffers to arrive, the queue lock is correctly released > and retaken. Otherwise the wait for a buffer would block all other > queue ioctls. > > Signed-off-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx> > Cc: Jacopo Mondi <jacopo.mondi@xxxxxxxxxxxxxxxx> > Cc: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> I can confirm it fixes a previously failing test was: fail: v4l2-test-buffers.cpp(3050): !thread_streamoff.done fail: v4l2-test-buffers.cpp(3078): testBlockingDQBuf(node, q) test blocking wait: FAIL now: test blocking wait: OK Acked-by: Jacopo Mondi <jacopo.mondi@xxxxxxxxxxxxxxxx> Tested-by: Jacopo Mondi <jacopo.mondi@xxxxxxxxxxxxxxxx> > --- > drivers/media/platform/raspberrypi/pisp_be/pisp_be.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c b/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c > index 65ff2382cffe..7ce3be626c4a 100644 > --- a/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c > +++ b/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c > @@ -964,6 +964,8 @@ static const struct vb2_ops pispbe_node_queue_ops = { > .buf_queue = pispbe_node_buffer_queue, > .start_streaming = pispbe_node_start_streaming, > .stop_streaming = pispbe_node_stop_streaming, > + .wait_prepare = vb2_ops_wait_prepare, > + .wait_finish = vb2_ops_wait_finish, > }; > > static const struct v4l2_file_operations pispbe_fops = { > -- > 2.43.0 > >