On 06/15/2016 07:15 AM, Peng Fan wrote: > If the usb controller is not running, no need to shutdown it, > otherwise `usb stop` complains about: > "EHCI failed to shut down host controller". > > To i.MX7D SDB, there are two usb ports, one Host, one OTG. > If we only plug one udisk to the Host port and then `usb start`, > the OTG controller for OTG port does not run actually. Then, > if `usb stop`, the OTG controller for OTG port will also be > shutdown, but it is not running. > > This patch adds a check to only shutdown the running controller. > > Signed-off-by: Peng Fan <peng....@nxp.com> > Cc: Marek Vasut <ma...@denx.de> > Cc: Simon Glass <s...@chromium.org> > Cc: Mateusz Kulikowski <mateusz.kulikow...@gmail.com> > Cc: Hans de Goede <hdego...@redhat.com> > Cc: "Stefan BrĂ¼ns" <stefan.bru...@rwth-aachen.de> > Cc: Stephen Warren <swar...@nvidia.com>
Acked-by: Marek Vasut <ma...@denx.de> > --- > drivers/usb/host/ehci-hcd.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c > index fa5d584..13aa70d 100644 > --- a/drivers/usb/host/ehci-hcd.c > +++ b/drivers/usb/host/ehci-hcd.c > @@ -210,6 +210,9 @@ static int ehci_shutdown(struct ehci_ctrl *ctrl) > return -EINVAL; > > cmd = ehci_readl(&ctrl->hcor->or_usbcmd); > + /* If not run, directly return */ > + if (!(cmd & CMD_RUN)) > + return 0; > cmd &= ~(CMD_PSE | CMD_ASE); > ehci_writel(&ctrl->hcor->or_usbcmd, cmd); > ret = handshake(&ctrl->hcor->or_usbsts, STS_ASS | STS_PSS, 0, > -- Best regards, Marek Vasut _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot