v4l2-compliance fails with this message: fail: v4l2-test-buffers.cpp(512): Expected EBUSY, got 22 test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: FAIL Looking at the v4l2-compliance code reveals that this failure is about the read() callback. In gspca, dev_read() is calling vidioc_dqbuf() which calls frame_ready_nolock() but the latter returns -EINVAL in a case when v4l2-compliance expects -EBUSY. Fix the failure by changing the return value in frame_ready_nolock(). Signed-off-by: Antonio Ospite <ao2@xxxxxx> --- drivers/media/usb/gspca/gspca.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/usb/gspca/gspca.c b/drivers/media/usb/gspca/gspca.c index 915b6c7..de7e300 100644 --- a/drivers/media/usb/gspca/gspca.c +++ b/drivers/media/usb/gspca/gspca.c @@ -1664,7 +1664,7 @@ static int frame_ready_nolock(struct gspca_dev *gspca_dev, struct file *file, return -ENODEV; if (gspca_dev->capt_file != file || gspca_dev->memory != memory || !gspca_dev->streaming) - return -EINVAL; + return -EBUSY; /* check if a frame is ready */ return gspca_dev->fr_o != atomic_read(&gspca_dev->fr_i); -- 2.7.0 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html