]> git.sur5r.net Git - u-boot/commitdiff
usb: ehci-mx6: allow board_ehci_hcd_init to fail
authorStefan Agner <stefan@agner.ch>
Thu, 5 May 2016 23:59:12 +0000 (16:59 -0700)
committerMarek Vasut <marex@denx.de>
Fri, 6 May 2016 16:33:26 +0000 (18:33 +0200)
There could be runtime determined board specific reason why a EHCI
initialization fails (e.g. ENODEV if a Port is not available). In
this case, properly return the error code.
While at it, that function (board_ehci_hcd_init) has actually two
documentation blocks... Use the correct function name for the
documentation block of board_usb_phy_mode.

Signed-off-by: Stefan Agner <stefan@agner.ch>
drivers/usb/host/ehci-mx6.c

index a981b50fda99be1de02283a4fccc271fb534ab44..bb48d0dea0a5849cbeb99412980bb74ef605ceb7 100644 (file)
@@ -254,7 +254,7 @@ static void usb_oc_config(int index)
 }
 
 /**
- * board_ehci_hcd_init - override usb phy mode
+ * board_usb_phy_mode - override usb phy mode
  * @port:      usb host/otg port
  *
  * Target board specific, override usb_phy_mode.
@@ -310,6 +310,7 @@ int ehci_hcd_init(int index, enum usb_init_type init,
 #endif
        struct usb_ehci *ehci = (struct usb_ehci *)(USB_BASE_ADDR +
                (controller_spacing * index));
+       int ret;
 
        if (index > 3)
                return -EINVAL;
@@ -317,7 +318,9 @@ int ehci_hcd_init(int index, enum usb_init_type init,
        mdelay(1);
 
        /* Do board specific initialization */
-       board_ehci_hcd_init(index);
+       ret = board_ehci_hcd_init(index);
+       if (ret)
+               return ret;
 
        usb_power_config(index);
        usb_oc_config(index);