[sane-devel] MP730 driver broken since pixma-0.12.2

Wade Fitzpatrick wade.fitzpatrick at gmail.com
Sat Apr 18 17:46:49 UTC 2009


The patch
<http://waddles.org/sites/waddles.org/files/sanei_usb.c.diff_.txt>
should apply to current if somebody wants to test it. I just don't know
how many scanners might be attached to Printer or Mass Storage devices'
interfaces so I deliberately left it simple, but the extra debug info
was certainly helpful.

Glad to see somebody is still reading my post, anyway. Thanks.

Wade.

m. allan noah wrote:
> though i must chime in that wade's latest post is very interesting- it
> does appear that sanei_usb grabs the wrong interface. I believe Ilia
> had a complaint about this as well. Sounds like sanei_usb needs an
> overhaul after our next release.
>
> allan
>
> On Sat, Apr 18, 2009 at 12:57 PM, Nicolas Martin
> <nicolas.martin at freesurf.fr> wrote:
>   
>> Wade,
>>
>> As far as I can see, you are experiencing a usb interrupt transfer
>> issue, same kind as happened to other people when running the pixma
>> backend on an ASUS router or also on MAC OS X.
>>
>> What is important to know is that the pixma backend - and this is due to
>> Canon's PIXMA devices - make use of both usb Bulk read/write transfers,
>> and also of usb Interrupt read transfers.
>>
>> It is compulsory that usb interrupt read transfers fully work to operate
>> the pixma backend, as the scanner (and more especially older PIXMA
>> devices, like MP730) uses those transfer to exchange :
>> - status information
>> - time request
>> - button scan information
>>
>> Today's PIXMA devices (that uses a generation 3 protocol) uses both, but
>> can work without interrupt read ; in this case, only button scan will be
>> disabled, but the scanner can be entirely driven with Bulk transfers.
>> This is not the case for MP730, a generation 2 protocol device, which
>> requires usb interrupt read transfers to be operated.
>>
>> There's a difference also between the usb lib used by Sane, and the one
>> used in the pixma Standalone driver. Sane uses libusb, based on ioctl
>> calls to the kernel to execute usb transfers, while standalone driver
>> uses usbdevfs.
>>
>> In order to help you and step further, could you tell us which Linux
>> distribution (and version) you are running ?
>>
>> $ uname -a
>>
>> As I told before, this kind of issue was due on MAC OS X to the darwin
>> libusb port, not handling timeouts in interrupt reads, and for the ASUS
>> router, use of a (very) old kernel 2.4.20 version, known to be buggy for
>> usb interrupt reads.
>>
>> Nicolas
>>
>>
>> Le samedi 18 avril 2009 à 09:01 +1000, Wade Fitzpatrick a écrit :
>>     
>>> I have updated my findings at
>>> http://waddles.org/content/sane-canon-mp730-driver
>>>
>>> Can someone suggest the next place to start work?
>>>
>>> Thanks,
>>> Wade.
>>>
>>> 2009/4/4 Nicolas Martin <nicolas.martin at freesurf.fr>
>>>         Sorry, posted answer in wrong thread.
>>>
>>>         As far as I can see in the differences between older versions
>>>         of the
>>>         pixma standalone driver and today's, concerning usb exchanges
>>>         for MP730,
>>>         the older drivers did not use events polling whereas newer do
>>>         with usb
>>>         interrupt reads.
>>>
>>>         First, did you try to remove the PIXMA_CAP_EVENTS flag for the
>>>         pixma 730
>>>         declaration (at the botom of file pixma_mp730.c) and see how
>>>         it
>>>         behaves ?
>>>
>>>         I will also send you some modified files for the pixma backend
>>>         to
>>>         investigate why this usb low level error appears.
>>>
>>>         Nicolas
>>>
>>>         Le vendredi 03 avril 2009 à 03:14 +1100, Wade Fitzpatrick a
>>>         écrit :
>>>
>>>         > Can you take a look at the logs on
>>>         > http://waddles.org/content/sane-canon-mp730-driver and tell
>>>         me if you
>>>         > think I'm on the right track with the endpoints?
>>>         >
>>>         > I CBF re-installing Windows, but I did test a successful
>>>         scan with
>>>         > mp150-0.12.2 followed immediately by a try with pixma-0.15.0
>>>         but it
>>>         > failed so I doubt it has anything to do with power-saving
>>>         modes.
>>>         >
>>>         > Thanks,
>>>         > Wade.
>>>         >
>>>         > 2009/3/21 Nicolas Martin <nicolas.martin at freesurf.fr>
>>>         >         Seems confirmed that a usb low level error happens
>>>         on first
>>>         >         write
>>>         >         attempt:
>>>         >
>>>         >         [sanei_usb] sanei_usb_write_bulk: trying to write 10
>>>         bytes
>>>         >         [sanei_usb] 000 F3 20 00 00 00 00 00 00 0C
>>>         >         00                   . ........
>>>         >         USB error: error submitting URB: Device or resource
>>>         busy
>>>         >         [sanei_usb] sanei_usb_write_bulk: write failed:
>>>         Device or
>>>         >         resource busy
>>>         >         USB error: could not clear/halt ep 1: Device or
>>>         resource busy
>>>         >
>>>         >         [pixma] WARNING:pixma_write(): count(0) != len(10)
>>>         >
>>>         >
>>>         >         I remember having seen this before for someone else,
>>>         this
>>>         >         happened when
>>>         >         the usb port was going to power saving (generally
>>>         after a few
>>>         >         seconds)
>>>         >
>>>         >         Could it be the case on system ?
>>>         >
>>>         >         Nicolas
>>>         >
>>>         >
>>>
>>>
>>>
>>>
>>>       
>>
>> --
>> sane-devel mailing list: sane-devel at lists.alioth.debian.org
>> http://lists.alioth.debian.org/mailman/listinfo/sane-devel
>> Unsubscribe: Send mail with subject "unsubscribe your_password"
>>             to sane-devel-request at lists.alioth.debian.org
>>
>>     
>
>
>
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/sane-devel/attachments/20090419/93c0f080/attachment-0001.htm>


More information about the sane-devel mailing list