Hi Karl,
I know I've replied to you privately but I want to reiterate here so that
more info is available to more folks in case it jogs somebody's memory.
I just tested with linux-2.3.99-pre6-3, SANE 1.0.1, and my trusty hp-4100.
When SANE queries a scanner, several short messages are xfered in both
directions (usually in the neiborhood of 8 bytes...maybe more, maybe
less). Several hundred of these queries are performed. This evening, all
three drivers (ohci, uhci, and usb-uhci) were able to complete the task in
less than 3 seconds without any problems (which I think is fairly
resonable). Large data xfers are another matter...sloooowwwww. I'm not
sure what Karl is runing into here and without any hardware it's kinda
hard for him to try things and I can't reproduce them here. Ideas anyone?
Regards,
/\/elson
On Wed, 19 Apr 2000, Karl Heinz Kremer wrote:
> Tap tap tap ... is this thing on?
>
> This problem was brought up here a few times before, but so far
> nobody seemed to care. With 2.4 comming up this will be a problem,
> people will no longer be able to use EPSON USB scanners with Linux.
>
> EPSON is a very good partner. They are releasing all information
> necessary to write drivers. I think it's important that their
> devices are supported under Linux.
>
> Regarding the SANE backend: I am not doing anything special, it's
> just reading and writing to the /dev/usbscanner device. The only
> thing that could be considered "special" is that I'm requesting
> only four bytes at the beginning of every read cycle, depending on
> the contents of these four bytes I then read the rest of the data
> that the scanner has available. In this four byte read attempt the
> communication with the scanner seems to hang with every USB software
> version after 2.3.39 (I'm not entirely sure if this really was the
> last version, it is for sure the last backport to 2.2.14 that worked).
>
> Can somebody please take a loot and either explain why it's not
> working (maybe it's something in the scanner, I doubt that however because
> it worked with 2.3.39) or give some advice about how to debug this
> problem. I don't have access to a USB scanner yet, but I am pretty
> sure I can relay some information and instructions to people who
> have access to such a device, and I'm pretty sure Marc Zyngier will
> be willing to help out as well.
>
> So please take a look,
>
> Karl Heinz
>
> Marc ZYNGIER <[EMAIL PROTECTED]> said:
>
> > Hi all.
> >
> > Can anyone with kernel USB experience have a look at this ? I'm quite
> > clueless on the subject.
> >
> > I'm experiencing problems with an Epson Perfection610 scanner. It
> > works fine with 2.2.14 + 2.3.39 backport, but fails with 2.3.50
> > backport and latests 2.3.99 kernels. System is a dual Celeron BP6
> > system (UHCI on 440BX chipset).
> >
> > Asking to Karl Heinz Kremer <[EMAIL PROTECTED]> (which maintains the Epson
> > Sane backend), it seems that is problem looks like being UHCI related.
> >
> > I have enabled debugs in usb-uhci.c, and traced a 'scanimage -L'.
> > Here's the result :
> >
> > open("/dev/usbscanner", O_RDWR|O_EXCL) = 4
> > write(4, "\33@", 2) = 2
> >
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: search_dev_ep:
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: submit_urb: scheduling c7cdb8e0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: uhci_submit_bulk_urb: urb
> c7cdb8e0, old 00000000, pipe c0010200, len 2
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: Allocated qh @ c58c68a0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: uhci_submit_bulk: qh=00000082,
> nqh=c03170de
> > Apr 16 08:59:52 hina kernel:
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: submit_urb: scheduled with ret: 0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: interrupt
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: process_transfer: len:2
> status:39000001 mapped:0 toggle:0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: clean transfer urb c7cdb8e0, qh
> c58c68a0, mode 1
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: process_transfer: (end) urb
> c7cdb8e0, wanted len 2, len 2 status 0 err 0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: dequeued urb: c7cdb8e0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: process_transfer: calling early
> completion
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c58c6820
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c58c6860
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c58c6a20
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912180
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c59121c0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912200
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912240
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912280
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c59122c0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912300
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912340
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912380
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c59123c0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912400
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912440
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912480
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c59124c0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912500
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912540
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912580
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c59125c0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912600
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912640
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912680
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c59126c0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912700
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912740
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912780
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c59127c0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912800
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912840
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912880
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c59128c0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c5912900
> >
> > Ok, the write has succeeded.
> >
> > read(4, 0x804d5d0, 4)
> >
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: search_dev_ep:
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: submit_urb: scheduling c7ad1cc0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: uhci_submit_bulk_urb: urb
> c7ad1cc0, old 00000000, pipe c0008280, len 4
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: Allocated qh @ c58c67a0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: uhci_submit_bulk: qh=00000082,
> nqh=c03170de
> > Apr 16 08:59:52 hina kernel:
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: submit_urb: scheduled with ret: 0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: interrupt
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: clean transfer urb c7ad1cc0, qh
> c58c67a0, mode 1
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: process_transfer: (end) urb
> c7ad1cc0, wanted len 4, len 1 status 0 err 0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: dequeued urb: c7ad1cc0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: process_transfer: calling early
> completion
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c58c6fa0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: interrupt
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: unlink td @ c58c6a20
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: search_dev_ep:
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: submit_urb: scheduling c7ad1cc0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: uhci_submit_bulk_urb: urb
> c7ad1cc0, old 00000000, pipe c0008280, len 3
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: Allocated qh @ c58c67a0
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: uhci_submit_bulk: qh=00000082,
> nqh=c03170de
> > Apr 16 08:59:52 hina kernel:
> > Apr 16 08:59:52 hina kernel: usb-uhci.c: submit_urb: scheduled with ret: 0
> >
> > <Here, the process pauses for 2 minutes, blocked in the read>
> >
> > read(4, 0x804d5d0, 4) = -1 ETIME (Timer expired)
> >
> > Apr 16 09:01:52 hina kernel: usb_control/bulk_msg: timeout
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: uhci_unlink_urb called for
> c7ad1cc0
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: clean transfer urb c7ad1cc0, qh
> c58c67a0, mode 1
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: unlink_urb: calling completion
> > Apr 16 09:01:52 hina kernel: scanner.c: read_scanner(0): NAK received
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: search_dev_ep:
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: submit_urb: scheduling c7ad15e0
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: uhci_submit_bulk_urb: urb
> c7ad15e0, old 00000000, pipe c0010200, len 2
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: Allocated qh @ c58c68a0
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: uhci_submit_bulk: qh=00000082,
> nqh=c03170de
> > Apr 16 09:01:52 hina kernel:
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: submit_urb: scheduled with ret: 0
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: interrupt
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: process_transfer: len:2
> status:39000001 mapped:0 toggle:1
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: clean transfer urb c7ad15e0, qh
> c58c68a0, mode 1
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: process_transfer: (end) urb
> c7ad15e0, wanted len 2, len 2 status 0 err 0
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: dequeued urb: c7ad15e0
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: process_transfer: calling early
> completion
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: unlink td @ c58c6a20
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: search_dev_ep:
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: submit_urb: scheduling c7ad1900
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: uhci_submit_bulk_urb: urb
> c7ad1900, old 00000000, pipe c0008280, len 4
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: Allocated qh @ c58c67a0
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: uhci_submit_bulk: qh=00000082,
> nqh=c03170de
> > Apr 16 09:01:52 hina kernel:
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: submit_urb: scheduled with ret: 0
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: interrupt
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: interrupt, status 3, frame# 1279
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: clean transfer urb c7ad1900, qh
> c58c67a0, mode 1
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: process_transfer: (end) urb
> c7ad1900, wanted len 4, len 0 status ffffffe0 err 1
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: dequeued urb: c7ad1900
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: process_transfer: calling early
> completion
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: unlink td @ c58c6fa0
> > Apr 16 09:01:52 hina kernel: scanner.c: read_scanner(0): funky result:-32.
> Please notify the maintainer.
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: interrupt
> > Apr 16 09:01:52 hina kernel: usb-uhci.c: unlink td @ c58c6a20
> >
> > I'll be very happy to test anything on that system. Note that it fails
> > with both usb-uhci and alternate uhci driver. Alas, I don't have
> > access to an OHCI system to test...
> >
> > Thanks a lot.
> >
> > Marc Zyngier.
> > --
> > Places change, faces change. Life is so very strange.
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
>
>
--
David /\/elson
http://www.jump.net/~dnelson
"Management is doing things right; leadership is doing the right things."
-- The 7 Habits Book
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]