summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Agner <stefan@agner.ch>2016-05-05 16:59:12 -0700
committerMarek Vasut <marex@denx.de>2016-05-06 18:33:26 +0200
commit79d867c2e683f7080a8724a54a4a12ac0ce1f837 (patch)
tree0f593c55763ffb902be9442d899dc71e093bec72
parentbbca7108db79076d3a9a9c112792d7c4608a665c (diff)
usb: ehci-mx6: allow board_ehci_hcd_init to fail
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>
-rw-r--r--drivers/usb/host/ehci-mx6.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/usb/host/ehci-mx6.c b/drivers/usb/host/ehci-mx6.c
index a981b50fda..bb48d0dea0 100644
--- a/drivers/usb/host/ehci-mx6.c
+++ b/drivers/usb/host/ehci-mx6.c
@@ -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);