[U-Boot] [PATCH] usb: ehci: only shutdown opened controller
Marek Vasut
marex at denx.de
Thu Jun 16 00:00:00 CEST 2016
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.fan at nxp.com>
> Cc: Marek Vasut <marex at denx.de>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Mateusz Kulikowski <mateusz.kulikowski at gmail.com>
> Cc: Hans de Goede <hdegoede at redhat.com>
> Cc: "Stefan Brüns" <stefan.bruens at rwth-aachen.de>
> Cc: Stephen Warren <swarren at nvidia.com>
Acked-by: Marek Vasut <marex at 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
More information about the U-Boot
mailing list