[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