upgrade to fedora-2.6.12-1.1398.FC4 + vserver 2.0.rc7
[linux-2.6.git] / drivers / usb / host / ohci-pci.c
index 89624af..57fd07d 100644 (file)
@@ -35,6 +35,7 @@ ohci_pci_reset (struct usb_hcd *hcd)
 {
        struct ohci_hcd *ohci = hcd_to_ohci (hcd);
 
+       ohci_hcd_init (ohci);
        return ohci_init (ohci);
 }
 
@@ -53,7 +54,7 @@ ohci_pci_start (struct usb_hcd *hcd)
                if (pdev->vendor == PCI_VENDOR_ID_AMD
                                && pdev->device == 0x740c) {
                        ohci->flags = OHCI_QUIRK_AMD756;
-                       ohci_info (ohci, "AMD756 erratum 4 workaround\n");
+                       ohci_dbg (ohci, "AMD756 erratum 4 workaround\n");
                        // also somewhat erratum 10 (suspend/resume issues)
                }
 
@@ -67,7 +68,7 @@ ohci_pci_start (struct usb_hcd *hcd)
                 */
                else if (pdev->vendor == PCI_VENDOR_ID_OPTI
                                && pdev->device == 0xc861) {
-                       ohci_info (ohci,
+                       ohci_dbg (ohci,
                                "WARNING: OPTi workarounds unavailable\n");
                }
 
@@ -83,9 +84,20 @@ ohci_pci_start (struct usb_hcd *hcd)
                        if (b && b->device == PCI_DEVICE_ID_NS_87560_LIO
                                        && b->vendor == PCI_VENDOR_ID_NS) {
                                ohci->flags |= OHCI_QUIRK_SUPERIO;
-                               ohci_info (ohci, "Using NSC SuperIO setup\n");
+                               ohci_dbg (ohci, "Using NSC SuperIO setup\n");
                        }
                }
+
+               /* Check for Compaq's ZFMicro chipset, which needs short 
+                * delays before control or bulk queues get re-activated
+                * in finish_unlinks()
+                */
+               else if (pdev->vendor == PCI_VENDOR_ID_COMPAQ
+                               && pdev->device  == 0xa0f8) {
+                       ohci->flags |= OHCI_QUIRK_ZFMICRO;
+                       ohci_dbg (ohci,
+                               "enabled Compaq ZFMicro chipset quirk\n");
+               }
        }
 
        /* NOTE: there may have already been a first reset, to
@@ -101,7 +113,7 @@ ohci_pci_start (struct usb_hcd *hcd)
 
 #ifdef CONFIG_PM
 
-static int ohci_pci_suspend (struct usb_hcd *hcd, u32 state)
+static int ohci_pci_suspend (struct usb_hcd *hcd, pm_message_t message)
 {
        struct ohci_hcd         *ohci = hcd_to_ohci (hcd);
 
@@ -110,7 +122,7 @@ static int ohci_pci_suspend (struct usb_hcd *hcd, u32 state)
                msleep (100);
 
 #ifdef CONFIG_USB_SUSPEND
-       (void) usb_suspend_device (hcd->self.root_hub, state);
+       (void) usb_suspend_device (hcd->self.root_hub, message);
 #else
        usb_lock_device (hcd->self.root_hub);
        (void) ohci_hub_suspend (hcd);
@@ -172,6 +184,8 @@ static int ohci_pci_resume (struct usb_hcd *hcd)
 
 static const struct hc_driver ohci_pci_hc_driver = {
        .description =          hcd_name,
+       .product_desc =         "OHCI Host Controller",
+       .hcd_priv_size =        sizeof(struct ohci_hcd),
 
        /*
         * generic hardware linkage
@@ -190,11 +204,6 @@ static const struct hc_driver ohci_pci_hc_driver = {
 #endif
        .stop =                 ohci_stop,
 
-       /*
-        * memory lifecycle (except per-request)
-        */
-       .hcd_alloc =            ohci_hcd_alloc,
-
        /*
         * managing i/o requests and associated device resources
         */