summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Fenkart <afenkart@gmail.com>2015-11-12 14:14:40 +0100
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2017-01-11 15:41:45 +0100
commit7ccb5e5585c937a86b4f42ee38d310d1b8bba15c (patch)
tree00a53de05da34028c16f8a9211062c2eb39406d9
parent1cb2765f6cb1bee2992f285e0b503f141ed8eedb (diff)
usb: chipidea: implement platform shutdown callback
disable wakeup irq during shutdown, otherwise kexec fails for kernels that setup irq handlers before resetting the hardware Signed-off-by: Andreas Fenkart <andreas.fenkart@dev.digitalstrom.org> Signed-off-by: Peter Chen <peter.chen@freescale.com> (cherry picked from commit b09b5224fe86b3c9adef1bd9f0bd81800e8ff0b3) Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
-rw-r--r--drivers/usb/chipidea/ci_hdrc_imx.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c
index 0c4c053a1b3a..d56ac6213f07 100644
--- a/drivers/usb/chipidea/ci_hdrc_imx.c
+++ b/drivers/usb/chipidea/ci_hdrc_imx.c
@@ -350,6 +350,11 @@ static int ci_hdrc_imx_remove(struct platform_device *pdev)
return 0;
}
+static void ci_hdrc_imx_shutdown(struct platform_device *pdev)
+{
+ ci_hdrc_imx_remove(pdev);
+}
+
#ifdef CONFIG_PM
static int imx_controller_suspend(struct device *dev)
{
@@ -467,6 +472,7 @@ static const struct dev_pm_ops ci_hdrc_imx_pm_ops = {
static struct platform_driver ci_hdrc_imx_driver = {
.probe = ci_hdrc_imx_probe,
.remove = ci_hdrc_imx_remove,
+ .shutdown = ci_hdrc_imx_shutdown,
.driver = {
.name = "imx_usb",
.of_match_table = ci_hdrc_imx_dt_ids,