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]