[sane-devel] sane to work with USB 3.0

m. allan noah kitno455 at gmail.com
Tue Dec 2 02:59:57 UTC 2014

Your patch makes no difference for the Fujitsu models in question.
I'll commit the patch in the next couple days, after some more


On Mon, Dec 1, 2014 at 9:44 PM, m. allan noah <kitno455 at gmail.com> wrote:
> Ha! As we speak, I am digging into USB3 again, because command
> counting seems to not fix every case. I will try your patch and report
> back.
> allan
> On Mon, Dec 1, 2014 at 9:21 PM, Olaf Meeuwissen
> <olaf.meeuwissen at avasys.jp> wrote:
>> Olaf Meeuwissen writes:
>>> m. allan noah writes:
>>>> I have added a USB3 port to my computer, and have spent a few days
>>>> investigating this problem.
>>> I haven't had that kind of time, yet :-(
>> Finally got time to do so.
>> # Someone managed to sky-rocket the priority of USB3 support to the top
>> # of my TODO list ;-)
>>>> It seems to be a bug in Linux kernel related to a bookkeeping error
>>>> when the USB device is closed.  [...]
>> Based on two days of looking at USB3 behaviour with three EPSON scanners
>> and three backends, that does not seem to be the whole story.
>>>> I have committed these changes to sane-backends git repo in
>>>> 7a590f362e7e93979b706dd9e6ae34584e926ec3. If users of fujitsu scanners
>>>> could try it out, I would appreciate any feedback. Note that this does
>>>> not fix USB3 problems in other sane backends. Until the kernel is
>>>> fixed, these types of repairs will have to be made on a per-backend
>>>> basis, at the discretion of the maintainer.
>> The epson and epson2 backends have been and still are using the kind of
>> command counting and making sure to send an even count of reads and
>> writes you added to the fujitsu backend.  That notwithstanding, they
>> suffer from USB3 I/O problems with the Perfection V700 (GT-X900) and
>> ES-H300 (GT-2500).  The epkowa backend does *not* even up the reads and
>> writes and unsurprisingly shows the same problems.  In addition, the
>> GT-D1000 (GT-1500), a non-free plugin needing device, is also affected.
>> Making the epkowa backend even up the reads and writes did *not* fix the
>> problem.  What did fix the problem for all three scanners and all three
>> backends for me was a tiny change in sanei_usb.c.  With that change, the
>> evening up of reads and writes was not needed either.
>> The sanei_usb.c code unconditionally sets the USB configuration.  This
>> happens even if the device has only one.  I found that *not* setting the
>> USB configuration when there is only one fixed all my USB3 problems.  My
>> understanding of the USB2 and USB3 standards is that the default USB
>> configuration has to be set before devices become available to libusb.
>> If that understanding is correct, then there is no need to set it unless
>> you need a configuration that *differs* from the current one.  With only
>> one configuration to choose from, there is then no need to set it.
>> This patch does exactly that.  It skips setting the USB configuration if
>> there is only one.  It should not break USB for any of the backends and
>> *may* fix USB3 for all of them.
>> Note: it may still set the default configuration if there are multiple
>>       ones to choose from.  I have no devices I can test with to see if
>>       that is problematic or not.  Even so, modifying the code to only
>>       set a USB configuration if it differs should be safe.
>>       # Patch is in preparation.
>> Allan, can you locally revert your fujitsu fixes and try with the patch
>> I applied?  Does that fix your USB3 issues?  Do you still need to even
>> up the reads and writes?
>> Unless it breaks things for you, could you please commit my patch?
>> # Even if it does not fix USB3 for you.
>> Other people with USB3 issues are of course more than welcome to try
>> this patch too!
>>> [...]
>> Hope this helps,
>> --
>> Olaf Meeuwissen, LPIC-2           FLOSS Engineer -- AVASYS CORPORATION
>> FSF Associate Member #1962               Help support software freedom
>>                  http://www.fsf.org/jf?referrer=1962
> --
> "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 mailing list