Hello Hans,
On 15.03.2015 17:26, Hans Verkuil wrote:
On 03/12/2015 08:37 PM, Florian Echtler wrote:
quoted
On 09.03.2015 15:02, Hans Verkuil wrote:
quoted
On 03/09/2015 02:45 PM, Florian Echtler wrote:
quoted
On 09.03.2015 11:09, Hans Verkuil wrote:
quoted
The error almost certainly comes from usb_submit_urb(). That function does some
checks on the sgl:
I'll do my best to track this down. Do you think this is an error in my
code, one in the USB subsystem, or some combination of both?
If the USB core indeed requires scatter-gather segments of specific lengths
(modulo max), then that explains the problems.
So as suggested try to see if the usb core bails out in that check and what the
'max' value is. It looks like only XHCI allows SG segments of any size, so I really
suspect that's the problem. But I also need to know the 'max' value to fully
understand the implications.
Finally managed to confirm your suspicions on a kernel with a patched
dev_err call at the location you mentioned:
So the SG segments are expected in multiples of 512 bytes. I assume this
is not something I can fix from within my driver?
No, you can't. I would use dma-sg, but disable the USERPTR support.
Also comment why USERPTR support is disabled.
This was interesting :-)
Thanks again for your help, new patch is submitted. Just for my
understanding: is this a hardware limitation? And why does dma-sg select
such a weird segment size like 4080?
Best, Florian
--
SENT FROM MY DEC VT50 TERMINAL