Re: [PATCH v3][RFC] add raw video stream support for Samsung SUR40
From: Hans Verkuil <hidden>
Date: 2015-03-09 10:09:09
Also in:
linux-media
Hi Florian, On 03/09/2015 10:49 AM, Florian Echtler wrote:
On 07.03.2015 21:57, Hans Verkuil wrote:quoted
This will wait until start_streaming was called before it starts processing video (and start_streaming is only called if at least 3 buffers have been queued). Right now the first buffer can be returned without STREAMON actually having been called. That's certainly wrong. Whether that is the cause of this bug I do not know, but fix this first.OK, I've fixed this, will be included in the next patch submission. Unfortunately still getting the same error from v4l2-compliance.quoted
If this doesn't solve it, then please do another run but this time use echo 10 >/sys/class/video4linux/videoX/dev_debug so I see the (D)QBUF ioctls as well. Otherwise use the same procedure as before.See attachments - syslog with dev_debug=10, core.debug=1 and output from v4l2-compliance -s. *fingers crossed even more* ;-)
OK, the cause of this failure is this message:
Mar 9 10:39:08 sur40 kernel: [ 1093.200960] sur40 2-1:1.0: error in usb_sg_wait
So you need to print the error message here (sgr.status) so that I can see what
it is.
The error almost certainly comes from usb_submit_urb(). That function does some
checks on the sgl:
} else if (urb->num_sgs && !urb->dev->bus->no_sg_constraint &&
dev->speed != USB_SPEED_WIRELESS) {
struct scatterlist *sg;
int i;
for_each_sg(urb->sg, sg, urb->num_sgs - 1, i)
if (sg->length % max)
return -EINVAL;
}
I wonder it the code gets there. Perhaps a printk just before the return -EINVAL
might help here (also print the 'max' value).
So you will have to debug a bit here, trying to figure out which test in the usb
code causes the usb_sg_wait error.
Regards,
Hans