[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#622649: linux-image-2.6.38-2-amd64: unable to enumerate USB device on port 6



On Fri, 15 Apr 2011, Ben Hutchings wrote:

> On Wed, 2011-04-13 at 18:32 +0200, Hans-J. Ullrich wrote:
> [...]
> > I get massive messages from the kernel "unable to enumerate USB device
> > on port 6" which is making the pc slower and 
> > which is filling up my syslog. The problem is caused by the ohci-hcd
> > kernel module. Unloading it, is stopping 
> > the messages, but then the mouse will not work (of course).
> > 
> > This bug appeared the first time at the change from
> > linux-image-2.6.32-5-amd64-30 --> linux-image-2.6.32-5-amd64-31 (and
> > higher!)
> > and it appeared only on 64-bit-systems.
> [...]
> 
> The only change to ohci-hcd between these versions was:
> 
> commit 5f528de0ef9b3e092e276d95930830b847b33dc4
> Author: Alan Stern <stern@rowland.harvard.edu>
> Date:   Fri Sep 10 16:37:05 2010 -0400
> 
>     OHCI: work around for nVidia shutdown problem
>     
>     commit 3df7169e73fc1d71a39cffeacc969f6840cdf52b upstream.
> 
> The reporter's system does indeed have an nVidia MCP67 chipset.  Full
> details (kernel log, lspci, etc.) are at <http://bugs.debian.org/620848>
> and <http://bugs.debian.org/622649>.

Hans, can you test whether the patch below fixes your problem?

Alan Stern



Index: usb-2.6/drivers/usb/host/ohci-pci.c
===================================================================
--- usb-2.6.orig/drivers/usb/host/ohci-pci.c
+++ usb-2.6/drivers/usb/host/ohci-pci.c
@@ -207,10 +207,18 @@ static int ohci_quirk_amd700(struct usb_
  */
 static int ohci_quirk_nvidia_shutdown(struct usb_hcd *hcd)
 {
+	struct pci_dev *pdev = to_pci_dev(hcd->self.controller);
 	struct ohci_hcd	*ohci = hcd_to_ohci(hcd);
 
-	ohci->flags |= OHCI_QUIRK_SHUTDOWN;
-	ohci_dbg(ohci, "enabled nVidia shutdown quirk\n");
+	/* Evidently nVidia fixed their later hardware; this is a guess at
+	 * the changeover point.
+	 */
+#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_USB		0x026d
+
+	if (pdev->device < PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_USB) {
+		ohci->flags |= OHCI_QUIRK_SHUTDOWN;
+		ohci_dbg(ohci, "enabled nVidia shutdown quirk\n");
+	}
 
 	return 0;
 }




Reply to: