On Fri, Sep 19, 2003 at 09:36:49AM -0400, jtholmes wrote:
> I don't take the  Distribution, and don't need email copy of
> answer,  just  answer in LKML  and I will see it.
> 
> If I knew how to turn on more debugging I would gladly do so
> as I need to figure out the Kernel debugging scheme.
> 
> Problem  Description
> 
>       After loading  Module uhci-hcd
> 
>       USB Optical Mouse light shuts off and  irq 11:  is disabled.

Hm, can you apply this patch with -R and see if it fixes your problem?

thanks,

greg k-h


diff -Nru a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c
--- a/drivers/usb/host/uhci-hcd.c       Fri Sep 19 12:13:36 2003
+++ b/drivers/usb/host/uhci-hcd.c       Fri Sep 19 12:13:36 2003
@@ -2143,6 +2143,20 @@
 #endif
 }
 
+static int uhci_reset(struct usb_hcd *hcd)
+{
+       struct uhci_hcd *uhci = hcd_to_uhci(hcd);
+
+       uhci->io_addr = (unsigned long) hcd->regs;
+
+       /* Maybe kick BIOS off this hardware.  Then reset, so we won't get
+        * interrupts from any previous setup.
+        */
+       pci_write_config_word(hcd->pdev, USBLEGSUP, USBLEGSUP_DEFAULT);
+       reset_hc(uhci);
+       return 0;
+}
+
 /*
  * Allocate a frame list, and then setup the skeleton
  *
@@ -2159,7 +2173,7 @@
  *  - The fourth queue is the bandwidth reclamation queue, which loops back
  *    to the high speed control queue.
  */
-static int __devinit uhci_start(struct usb_hcd *hcd)
+static int uhci_start(struct usb_hcd *hcd)
 {
        struct uhci_hcd *uhci = hcd_to_uhci(hcd);
        int retval = -EBUSY;
@@ -2171,7 +2185,6 @@
        struct proc_dir_entry *ent;
 #endif
 
-       uhci->io_addr = (unsigned long) hcd->regs;
        io_size = pci_resource_len(hcd->pdev, hcd->region);
 
 #ifdef CONFIG_PROC_FS
@@ -2188,10 +2201,6 @@
        uhci->proc_entry = ent;
 #endif
 
-       /* Reset here so we don't get any interrupts from an old setup */
-       /*  or broken setup */
-       reset_hc(uhci);
-
        uhci->fsbr = 0;
        uhci->fsbrtimeout = 0;
 
@@ -2343,9 +2352,6 @@
 
        init_stall_timer(hcd);
 
-       /* disable legacy emulation */
-       pci_write_config_word(hcd->pdev, USBLEGSUP, USBLEGSUP_DEFAULT);
-
        udev->speed = USB_SPEED_FULL;
 
        if (usb_register_root_hub(udev, &hcd->pdev->dev) != 0) {
@@ -2484,6 +2490,7 @@
        .flags =                HCD_USB11,
 
        /* Basic lifecycle operations */
+       .reset =                uhci_reset,
        .start =                uhci_start,
 #ifdef CONFIG_PM
        .suspend =              uhci_suspend,


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to