[sane-devel] sane to work with USB 3.0
m. allan noah
kitno455 at gmail.com
Tue Dec 16 15:33:14 UTC 2014
I have just committed an attempted workaround for this Linux kernel
bug. I have tested with Fujitsu and Canon scanners, and it does fix
the problem. I have not tested with other scanners. We need as much
testing on this as we can get. Please build from a current git
checkout (or tomorrow's git snapshot), and let us know what you find.
On Thu, Dec 11, 2014 at 9:05 PM, m. allan noah <kitno455 at gmail.com> wrote:
> On Thu, Dec 11, 2014 at 2:21 AM, Olaf Meeuwissen
> <olaf.meeuwissen at avasys.jp> wrote:
>> m. allan noah writes:
>>> I have just pushed your patches to git. They don't seem to help with
>>> any scanner that I have, but I doubt they will hurt anything.
>>> It appears that we also have USB3 issues with Canon scanners as well-
>>> they do use clear_halt frequently, and it seems that maybe the Linux
>>> kernel is not passing them down to the scanner in some cases.
>> Do they halt/stall that frequently? If there's no stall, clear_halt
>> should not be used, IIUC. Hmm, it doesn't look like sanei_usb allows
>> you to find out about that ...
> Yeah, the Canon machines halt at the drop of a hat. I added
> sanei_usb_clear_halt specifically for them.
> But, no matter. Based on the threads linked from this post:
> http://www.spinics.net/lists/linux-usb/msg105515.html I have come up
> with a workaround that fixes both the Canon and the Fujitsu machines I
> have access to. It seems the xhci controller refuses to transmit a
> clear_halt to the device or reset the data 0/1 toggle in the host when
> the ehci controller would. However, sending a set_interface command
> for the interface that is already selected, seems to do both of those
> things. So, I added a call to
> sanei_usb_set_altinterface (s->fd, 0);
> right before the calls to sanei_usb_close() or sanei_usb_clear_halt()
> in those two backends, and everything suddenly seems to work.
> I need to do some further testing, and see if these changes should be
> moved up to sanei_usb instead of the backends.
> "well, I stand up next to a mountain- and I chop it down with the edge
> of my hand"
"well, I stand up next to a mountain- and I chop it down with the edge
of my hand"
More information about the sane-devel