On Thu, 19 Feb 2004, Chip Salzenberg wrote:

> Still fails in 2.6.3.  Logs, with debugging on, are included below.
> 
> A clue: The failure is not caused by re-plugging per se.  It's
> triggered by APM suspension.  When I tested my system today with
> 2.6.3, it worked OK at first; then I got the idea to suspend and
> try again, and then it failed.

I think this may be the answer.  Apparently on some systems the UHCI 
controller's interrupts are disabled during power management 
suspend/resume.  This patch will re-enable interrupts.  Let me know how it 
works.

Alan Stern


--- 2.6/drivers/usb/host/uhci-hcd.c.orig        Fri Feb 20 15:04:41 2004
+++ 2.6/drivers/usb/host/uhci-hcd.c     Sun Feb 22 15:23:59 2004
@@ -2471,9 +2471,16 @@
 
        pci_set_master(to_pci_dev(uhci_dev(uhci)));
 
-       if (uhci->state == UHCI_SUSPENDED)
+       if (uhci->state == UHCI_SUSPENDED) {
+
+               /*
+                * Some systems clear the Interrupt Enable register during
+                * PM suspend/resume, so reinitialize it.
+                */
+               outw(USBINTR_TIMEOUT | USBINTR_RESUME | USBINTR_IOC |
+                               USBINTR_SP, uhci->io_addr + USBINTR);
                uhci->resume_detect = 1;
-       else {
+       } else {
                reset_hc(uhci);
                start_hc(uhci);
        }





-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&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