diff options
author | Peter Chen <peter.chen@nxp.com> | 2017-12-21 09:06:40 +0800 |
---|---|---|
committer | Peter Chen <peter.chen@nxp.com> | 2017-12-21 10:15:09 +0800 |
commit | daf5329bc031db48845432a69a150ae0abf17c9e (patch) | |
tree | 64dc2e2fb277d76a460e10227e72f26fc68dc015 | |
parent | 195b64be77f52a6ffcbc634cc977fc41e9e85308 (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.c | 1 | ||||
-rw-r--r-- | drivers/usb/chipidea/usbmisc_imx.c | 4 |
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); } |