]> Pileus Git - ~andy/linux/blobdiff - drivers/usb/host/ohci-pci.c
Merge branch 'for-3.1' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc...
[~andy/linux] / drivers / usb / host / ohci-pci.c
index d84d6f0314f961e764a0bc93631bbb983691b15b..ad8166c681e2894424b81850aa3a366108d8d11c 100644 (file)
@@ -181,10 +181,18 @@ static int ohci_quirk_amd700(struct usb_hcd *hcd)
  */
 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;
 }