Hi Florian,
On 03/09/2015 10:49 AM, Florian Echtler wrote:
> On 07.03.2015 21:57, Hans Verkuil wrote:
>> 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.
>
>> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html