summaryrefslogtreecommitdiffstats
path: root/drivers/usb/chipidea/host.c
diff options
context:
space:
mode:
authorStephen Boyd2016-12-28 23:57:06 +0100
committerPeter Chen2017-01-20 08:27:35 +0100
commit11893dae63da0f5b251cf7f9a24d64c8ff4771ff (patch)
tree9978a7acdaff564f565f3b82173d012f19f523a7 /drivers/usb/chipidea/host.c
parentusb: chipidea: msm: Add reset controller for PHY POR bit (diff)
downloadkernel-qcow2-linux-11893dae63da0f5b251cf7f9a24d64c8ff4771ff.tar.gz
kernel-qcow2-linux-11893dae63da0f5b251cf7f9a24d64c8ff4771ff.tar.xz
kernel-qcow2-linux-11893dae63da0f5b251cf7f9a24d64c8ff4771ff.zip
usb: chipidea: msm: Handle phy power states
The ULPI phy on qcom platforms needs to be initialized and powered on after a USB reset and before we toggle the run/stop bit. Otherwise, the phy locks up and doesn't work properly. Hook the phy initialization into the RESET event and the phy power off into the STOPPED event. Acked-by: Peter Chen <peter.chen@nxp.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Stephen Boyd <stephen.boyd@linaro.org> Signed-off-by: Peter Chen <peter.chen@nxp.com>
Diffstat (limited to 'drivers/usb/chipidea/host.c')
-rw-r--r--drivers/usb/chipidea/host.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c
index f884c0877bca..915f3e91586e 100644
--- a/drivers/usb/chipidea/host.c
+++ b/drivers/usb/chipidea/host.c
@@ -90,8 +90,12 @@ static int ehci_ci_reset(struct usb_hcd *hcd)
ehci->need_io_watchdog = 0;
- if (ci->platdata->notify_event)
- ci->platdata->notify_event(ci, CI_HDRC_CONTROLLER_RESET_EVENT);
+ if (ci->platdata->notify_event) {
+ ret = ci->platdata->notify_event(ci,
+ CI_HDRC_CONTROLLER_RESET_EVENT);
+ if (ret)
+ return ret;
+ }
ci_platform_configure(ci);