Woohoo! Partial success. Updates at <a href="http://waddles.org/content/sane-canon-mp730-driver">http://waddles.org/content/sane-canon-mp730-driver</a><br><br>Perhaps the discussion of sanei_usb belongs in a different thread :)<br>
<br>Cheers,<br>Wade.<br><br><div class="gmail_quote">2009/4/19 Nicolas Martin <span dir="ltr">&lt;<a href="mailto:nicolas.martin@freesurf.fr">nicolas.martin@freesurf.fr</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Maybe there&#39;s some relation with the endpoint, but remember that all<br>
PIXMA devices have also different endpoints for storage, printer and<br>
scanner, and there&#39;s no issue so far with messing those devices.<br>
So this requires anyway deeper analysis, but filtering out usb classes<br>
in sanei_usb is a good precaution.<br>
<br>
BTW, we really read your posts and try to figure out where there&#39;s<br>
something wrong, but as you can understand, this usb issue is not<br>
trivial.<br>
<br>
Nicolas<br>
<br>
Le dimanche 19 avril 2009 à 03:46 +1000, Wade Fitzpatrick a écrit :<br>
<div><div></div><div class="h5">&gt; The patch should apply to current if somebody wants to test it. I just<br>
&gt; don&#39;t know how many scanners might be attached to Printer or Mass<br>
&gt; Storage devices&#39; interfaces so I deliberately left it simple, but the<br>
&gt; extra debug info was certainly helpful.<br>
&gt;<br>
&gt; Glad to see somebody is still reading my post, anyway. Thanks.<br>
&gt;<br>
&gt; Wade.<br>
&gt;<br>
&gt; m. allan noah wrote:<br>
&gt; &gt; though i must chime in that wade&#39;s latest post is very interesting- it<br>
&gt; &gt; does appear that sanei_usb grabs the wrong interface. I believe Ilia<br>
&gt; &gt; had a complaint about this as well. Sounds like sanei_usb needs an<br>
&gt; &gt; overhaul after our next release.<br>
&gt; &gt;<br>
&gt; &gt; allan<br>
&gt; &gt;<br>
&gt; &gt; On Sat, Apr 18, 2009 at 12:57 PM, Nicolas Martin<br>
&gt; &gt; &lt;<a href="mailto:nicolas.martin@freesurf.fr">nicolas.martin@freesurf.fr</a>&gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt; &gt; Wade,<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; As far as I can see, you are experiencing a usb interrupt transfer<br>
&gt; &gt; &gt; issue, same kind as happened to other people when running the pixma<br>
&gt; &gt; &gt; backend on an ASUS router or also on MAC OS X.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; What is important to know is that the pixma backend - and this is due to<br>
&gt; &gt; &gt; Canon&#39;s PIXMA devices - make use of both usb Bulk read/write transfers,<br>
&gt; &gt; &gt; and also of usb Interrupt read transfers.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; It is compulsory that usb interrupt read transfers fully work to operate<br>
&gt; &gt; &gt; the pixma backend, as the scanner (and more especially older PIXMA<br>
&gt; &gt; &gt; devices, like MP730) uses those transfer to exchange :<br>
&gt; &gt; &gt; - status information<br>
&gt; &gt; &gt; - time request<br>
&gt; &gt; &gt; - button scan information<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Today&#39;s PIXMA devices (that uses a generation 3 protocol) uses both, but<br>
&gt; &gt; &gt; can work without interrupt read ; in this case, only button scan will be<br>
&gt; &gt; &gt; disabled, but the scanner can be entirely driven with Bulk transfers.<br>
&gt; &gt; &gt; This is not the case for MP730, a generation 2 protocol device, which<br>
&gt; &gt; &gt; requires usb interrupt read transfers to be operated.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; There&#39;s a difference also between the usb lib used by Sane, and the one<br>
&gt; &gt; &gt; used in the pixma Standalone driver. Sane uses libusb, based on ioctl<br>
&gt; &gt; &gt; calls to the kernel to execute usb transfers, while standalone driver<br>
&gt; &gt; &gt; uses usbdevfs.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; In order to help you and step further, could you tell us which Linux<br>
&gt; &gt; &gt; distribution (and version) you are running ?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; $ uname -a<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; As I told before, this kind of issue was due on MAC OS X to the darwin<br>
&gt; &gt; &gt; libusb port, not handling timeouts in interrupt reads, and for the ASUS<br>
&gt; &gt; &gt; router, use of a (very) old kernel 2.4.20 version, known to be buggy for<br>
&gt; &gt; &gt; usb interrupt reads.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Nicolas<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Le samedi 18 avril 2009 à 09:01 +1000, Wade Fitzpatrick a écrit :<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; I have updated my findings at<br>
&gt; &gt; &gt; &gt; <a href="http://waddles.org/content/sane-canon-mp730-driver" target="_blank">http://waddles.org/content/sane-canon-mp730-driver</a><br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Can someone suggest the next place to start work?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Thanks,<br>
&gt; &gt; &gt; &gt; Wade.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; 2009/4/4 Nicolas Martin &lt;<a href="mailto:nicolas.martin@freesurf.fr">nicolas.martin@freesurf.fr</a>&gt;<br>
&gt; &gt; &gt; &gt;         Sorry, posted answer in wrong thread.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;         As far as I can see in the differences between older versions<br>
&gt; &gt; &gt; &gt;         of the<br>
&gt; &gt; &gt; &gt;         pixma standalone driver and today&#39;s, concerning usb exchanges<br>
&gt; &gt; &gt; &gt;         for MP730,<br>
&gt; &gt; &gt; &gt;         the older drivers did not use events polling whereas newer do<br>
&gt; &gt; &gt; &gt;         with usb<br>
&gt; &gt; &gt; &gt;         interrupt reads.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;         First, did you try to remove the PIXMA_CAP_EVENTS flag for the<br>
&gt; &gt; &gt; &gt;         pixma 730<br>
&gt; &gt; &gt; &gt;         declaration (at the botom of file pixma_mp730.c) and see how<br>
&gt; &gt; &gt; &gt;         it<br>
&gt; &gt; &gt; &gt;         behaves ?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;         I will also send you some modified files for the pixma backend<br>
&gt; &gt; &gt; &gt;         to<br>
&gt; &gt; &gt; &gt;         investigate why this usb low level error appears.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;         Nicolas<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;         Le vendredi 03 avril 2009 à 03:14 +1100, Wade Fitzpatrick a<br>
&gt; &gt; &gt; &gt;         écrit :<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;         &gt; Can you take a look at the logs on<br>
&gt; &gt; &gt; &gt;         &gt; <a href="http://waddles.org/content/sane-canon-mp730-driver" target="_blank">http://waddles.org/content/sane-canon-mp730-driver</a> and tell<br>
&gt; &gt; &gt; &gt;         me if you<br>
&gt; &gt; &gt; &gt;         &gt; think I&#39;m on the right track with the endpoints?<br>
&gt; &gt; &gt; &gt;         &gt;<br>
&gt; &gt; &gt; &gt;         &gt; I CBF re-installing Windows, but I did test a successful<br>
&gt; &gt; &gt; &gt;         scan with<br>
&gt; &gt; &gt; &gt;         &gt; mp150-0.12.2 followed immediately by a try with pixma-0.15.0<br>
&gt; &gt; &gt; &gt;         but it<br>
&gt; &gt; &gt; &gt;         &gt; failed so I doubt it has anything to do with power-saving<br>
&gt; &gt; &gt; &gt;         modes.<br>
&gt; &gt; &gt; &gt;         &gt;<br>
&gt; &gt; &gt; &gt;         &gt; Thanks,<br>
&gt; &gt; &gt; &gt;         &gt; Wade.<br>
&gt; &gt; &gt; &gt;         &gt;<br>
&gt; &gt; &gt; &gt;         &gt; 2009/3/21 Nicolas Martin &lt;<a href="mailto:nicolas.martin@freesurf.fr">nicolas.martin@freesurf.fr</a>&gt;<br>
&gt; &gt; &gt; &gt;         &gt;         Seems confirmed that a usb low level error happens<br>
&gt; &gt; &gt; &gt;         on first<br>
&gt; &gt; &gt; &gt;         &gt;         write<br>
&gt; &gt; &gt; &gt;         &gt;         attempt:<br>
&gt; &gt; &gt; &gt;         &gt;<br>
&gt; &gt; &gt; &gt;         &gt;         [sanei_usb] sanei_usb_write_bulk: trying to write 10<br>
&gt; &gt; &gt; &gt;         bytes<br>
&gt; &gt; &gt; &gt;         &gt;         [sanei_usb] 000 F3 20 00 00 00 00 00 00 0C<br>
&gt; &gt; &gt; &gt;         &gt;         00                   . ........<br>
&gt; &gt; &gt; &gt;         &gt;         USB error: error submitting URB: Device or resource<br>
&gt; &gt; &gt; &gt;         busy<br>
&gt; &gt; &gt; &gt;         &gt;         [sanei_usb] sanei_usb_write_bulk: write failed:<br>
&gt; &gt; &gt; &gt;         Device or<br>
&gt; &gt; &gt; &gt;         &gt;         resource busy<br>
&gt; &gt; &gt; &gt;         &gt;         USB error: could not clear/halt ep 1: Device or<br>
&gt; &gt; &gt; &gt;         resource busy<br>
&gt; &gt; &gt; &gt;         &gt;<br>
&gt; &gt; &gt; &gt;         &gt;         [pixma] WARNING:pixma_write(): count(0) != len(10)<br>
&gt; &gt; &gt; &gt;         &gt;<br>
&gt; &gt; &gt; &gt;         &gt;<br>
&gt; &gt; &gt; &gt;         &gt;         I remember having seen this before for someone else,<br>
&gt; &gt; &gt; &gt;         this<br>
&gt; &gt; &gt; &gt;         &gt;         happened when<br>
&gt; &gt; &gt; &gt;         &gt;         the usb port was going to power saving (generally<br>
&gt; &gt; &gt; &gt;         after a few<br>
&gt; &gt; &gt; &gt;         &gt;         seconds)<br>
&gt; &gt; &gt; &gt;         &gt;<br>
&gt; &gt; &gt; &gt;         &gt;         Could it be the case on system ?<br>
&gt; &gt; &gt; &gt;         &gt;<br>
&gt; &gt; &gt; &gt;         &gt;         Nicolas<br>
&gt; &gt; &gt; &gt;         &gt;<br>
&gt; &gt; &gt; &gt;         &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; --<br>
&gt; &gt; &gt; sane-devel mailing list: <a href="mailto:sane-devel@lists.alioth.debian.org">sane-devel@lists.alioth.debian.org</a><br>
&gt; &gt; &gt; <a href="http://lists.alioth.debian.org/mailman/listinfo/sane-devel" target="_blank">http://lists.alioth.debian.org/mailman/listinfo/sane-devel</a><br>
&gt; &gt; &gt; Unsubscribe: Send mail with subject &quot;unsubscribe your_password&quot;<br>
&gt; &gt; &gt;             to <a href="mailto:sane-devel-request@lists.alioth.debian.org">sane-devel-request@lists.alioth.debian.org</a><br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
<br>
<br>
</div></div></blockquote></div><br>