[PATCH] USB: ehci fixups

Rename the EHCI "reset" routine so it better matches what it does (setup);
and move the one-time data structure setup earlier, before doing anything
that implicitly relies on it having been completed already.

From: David Brownell <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>

---
commit 8926bfa7462d4c3f8b05cca929e0c4bcde93ae38
tree 52f6841e035827751efee6b4616f84606db70663
parent 8de98402652c01839ae321be6cb3054cf5735d83
author David Brownell <[EMAIL PROTECTED]> Mon, 28 Nov 2005 08:40:38 -0800
committer Greg Kroah-Hartman <[EMAIL PROTECTED]> Tue, 29 Nov 2005 21:39:23 -0800

 drivers/usb/host/ehci-pci.c |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
index 14fff57..13f73a8 100644
--- a/drivers/usb/host/ehci-pci.c
+++ b/drivers/usb/host/ehci-pci.c
@@ -121,8 +121,8 @@ static int ehci_pci_reinit(struct ehci_h
        return 0;
 }
 
-/* called by khubd or root hub (re)init threads; leaves HC in halt state */
-static int ehci_pci_reset(struct usb_hcd *hcd)
+/* called during probe() after chip reset completes */
+static int ehci_pci_setup(struct usb_hcd *hcd)
 {
        struct ehci_hcd         *ehci = hcd_to_ehci(hcd);
        struct pci_dev          *pdev = to_pci_dev(hcd->self.controller);
@@ -141,6 +141,11 @@ static int ehci_pci_reset(struct usb_hcd
        if (retval)
                return retval;
 
+       /* data structure init */
+       retval = ehci_init(hcd);
+       if (retval)
+               return retval;
+
        /* NOTE:  only the parts below this line are PCI-specific */
 
        switch (pdev->vendor) {
@@ -154,7 +159,8 @@ static int ehci_pci_reset(struct usb_hcd
                /* AMD8111 EHCI doesn't work, according to AMD errata */
                if (pdev->device == 0x7463) {
                        ehci_info(ehci, "ignoring AMD8111 (errata)\n");
-                       return -EIO;
+                       retval = -EIO;
+                       goto done;
                }
                break;
        case PCI_VENDOR_ID_NVIDIA:
@@ -207,9 +213,8 @@ static int ehci_pci_reset(struct usb_hcd
        /* REVISIT:  per-port wake capability (PCI 0x62) currently unused */
 
        retval = ehci_pci_reinit(ehci, pdev);
-
-       /* finish init */
-       return ehci_init(hcd);
+done:
+       return retval;
 }
 
 /*-------------------------------------------------------------------------*/
@@ -344,7 +349,7 @@ static const struct hc_driver ehci_pci_h
        /*
         * basic lifecycle operations
         */
-       .reset =                ehci_pci_reset,
+       .reset =                ehci_pci_setup,
        .start =                ehci_run,
 #ifdef CONFIG_PM
        .suspend =              ehci_pci_suspend,



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_idv37&alloc_id865&op=click
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to