[This bug report was originally sent to the user mailing list as suggested by
<http://www.linux-usb.org/FAQ.html#ts1>. Someone replied that it should go to
the -devel list instead; if that's true the FAQ apparently needs updated.]

With these ingredients:
  HP OfficeJet 4110 printer/scanner combo
  hpoj 0.91 (hpoj.sourceforge.net)
  SiS OHCI controller
  libsane 1.0.7-4 (debian package)
  libusb-0.1-4 1:0.1.5-4 (debian package)

Since 2.6.7-rc1, the scanner stopped working. Attempting to use it results in
this stuff being logged:

usb 1-1: usbfs: USBDEVFS_BULK failed ep 0x85 len 4096 ret -110
hub 1-0:1.0: port 1 disabled by hub (EMI?), re-enabling...
usb 1-1: usbfs: USBDEVFS_BULK failed ep 0x85 len 4096 ret -110
usb 1-1: USB disconnect, address 2

The first line repeats several times, then the last few lines come, it all
happens very quickly.

There is an odd workaround: if I unload and reload ohci_hcd, it works.
ohci_hcd must be loaded twice before it will work.

I traced the bug to the periodic_reinit() function in drivers/usb/host/ohci.h,
and sprinkled it with printk's, which revealed that on the first module load,
ohci->fminterval is 0xbff82edf, and on the second load it is 0x27782edf.

>From there, I followed the trail to hc_reset() in
drivers/usb/host/ohci-hcd.c, where ohci->fminterval gets initialized.
Sprinkling that one with printk's, I found that the difference comes from the
following line:

  temp = ohci_readl (&ohci->regs->fminterval);

On the first module load, temp is 0xbff82edf. On the second module load, it
is 0x00002edf.

Replacing the first line of periodic_reinit() by its counterpart from 2.6.6
fixes the bug:

  /*GOOD:*/
  writel ((((6 * (FI - 210)) / 7) << 16) | FI, &ohci->regs->fminterval);
  /*BAD:*/
  /*writel (ohci->fminterval, &ohci->regs->fminterval);*/

This was a rough one... I discovered the unload-reload workaround by applying
the 2.6.7-rc1 piece-by-piece, reloading the modules after recompiling them,
without knowing that I needed to reboot in order to trigger the bug again.



-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to