diff options
author | Peter Chen <peter.chen@nxp.com> | 2017-12-21 09:06:40 +0800 |
---|---|---|
committer | Jason Liu <jason.hui.liu@nxp.com> | 2019-02-12 10:30:01 +0800 |
commit | de42acd1cfcd09bc017213defaccf819598a9d5d (patch) | |
tree | 1ed46cab0561bbbd5ec98f1eccf65b5d5f7d36ff /drivers/usb/chipidea | |
parent | 69c8b182351a0516acc7d9a1df39369c493477ff (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>
Diffstat (limited to 'drivers/usb/chipidea')
-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 9ec6e8e1cbb4..e7800288548f 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 37e2fb5b3e49..4d8720fa2236 100644 --- a/drivers/usb/chipidea/usbmisc_imx.c +++ b/drivers/usb/chipidea/usbmisc_imx.c @@ -1203,7 +1203,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); } @@ -1217,7 +1217,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); } |