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]
> 




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to