summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2018-10-26 11:19:49 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2018-10-29 11:26:35 +0100
commit7da5b5cd93050ce264ba36556f2f2720a0a39acd (patch)
tree32b24f35cc86ac0ea9cf0f3ca919bc5841709075
parent94f808bafaac85bdceb70d74375549eaddcc209c (diff)
downloadbarebox-7da5b5cd93050ce264ba36556f2f2720a0a39acd.tar.gz
barebox-7da5b5cd93050ce264ba36556f2f2720a0a39acd.tar.xz
usb: imx: unregister ehci controller on device removal
ehci does DMA and hence must be properly quiesced before we leave barebox. Call ehci_unregister() on device removal when we previously registered a ehci controller. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--drivers/usb/imx/chipidea-imx.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/usb/imx/chipidea-imx.c b/drivers/usb/imx/chipidea-imx.c
index 321a8ada3f..7bf2ef76c5 100644
--- a/drivers/usb/imx/chipidea-imx.c
+++ b/drivers/usb/imx/chipidea-imx.c
@@ -364,6 +364,11 @@ static int imx_chipidea_probe(struct device_d *dev)
static void imx_chipidea_remove(struct device_d *dev)
{
+ struct imx_chipidea *ci = dev->priv;
+
+ if (ci->ehci)
+ ehci_unregister(ci->ehci);
+
if (IS_ENABLED(CONFIG_USB_GADGET_DRIVER_ARC))
ci_udc_unregister();
}