summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Chen <peter.chen@nxp.com>2017-12-21 09:06:40 +0800
committerPeter Chen <peter.chen@nxp.com>2017-12-21 10:15:09 +0800
commitdaf5329bc031db48845432a69a150ae0abf17c9e (patch)
tree64dc2e2fb277d76a460e10227e72f26fc68dc015
parent195b64be77f52a6ffcbc634cc977fc41e9e85308 (diff)
MLK-17261-2 usb: chipidea: imx: do not call hsic callback for non-hsic controller
With this judgement, the non-hsic controller will access wrong registers, and below error message will be showed: "usbmisc_imx 2184800.usbmisc: index is error for usbmisc" Fixes: 113be1516160 ("MLK-16715-6 usb: chipidea: imx: add HSIC support for controllers from imx7d") Reported-by: Peng Fan <peng.fan@nxp.com> Acked-by: Jun Li <jun.li@nxp.com> Signed-off-by: Peter Chen <peter.chen@nxp.com>
-rw-r--r--drivers/usb/chipidea/ci_hdrc_imx.c1
-rw-r--r--drivers/usb/chipidea/usbmisc_imx.c4
2 files changed, 3 insertions, 2 deletions
diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c
index 7f68b5e4b014..53f48cc2eeb5 100644
--- a/drivers/usb/chipidea/ci_hdrc_imx.c
+++ b/drivers/usb/chipidea/ci_hdrc_imx.c
@@ -1,5 +1,6 @@
/*
* Copyright 2012-2016 Freescale Semiconductor, Inc.
+ * Copyright 2017 NXP
* Copyright (C) 2012 Marek Vasut <marex@denx.de>
* on behalf of DENX Software Engineering GmbH
*
diff --git a/drivers/usb/chipidea/usbmisc_imx.c b/drivers/usb/chipidea/usbmisc_imx.c
index b367a453a95b..b7d21b052c19 100644
--- a/drivers/usb/chipidea/usbmisc_imx.c
+++ b/drivers/usb/chipidea/usbmisc_imx.c
@@ -1122,7 +1122,7 @@ int imx_usbmisc_hsic_set_connect(struct imx_usbmisc_data *data)
return 0;
usbmisc = dev_get_drvdata(data->dev);
- if (!usbmisc->ops->hsic_set_connect)
+ if (!usbmisc->ops->hsic_set_connect || !data->hsic)
return 0;
return usbmisc->ops->hsic_set_connect(data);
}
@@ -1136,7 +1136,7 @@ int imx_usbmisc_hsic_set_clk(struct imx_usbmisc_data *data, bool on)
return 0;
usbmisc = dev_get_drvdata(data->dev);
- if (!usbmisc->ops->hsic_set_clk)
+ if (!usbmisc->ops->hsic_set_clk || !data->hsic)
return 0;
return usbmisc->ops->hsic_set_clk(data, on);
}