MLK-17261-2 usb: chipidea: imx: do not call hsic callback for non-hsic controller
authorPeter Chen <peter.chen@nxp.com>
Thu, 21 Dec 2017 01:06:40 +0000 (09:06 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Tue, 20 Mar 2018 19:52:02 +0000 (14:52 -0500)
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>
drivers/usb/chipidea/ci_hdrc_imx.c
drivers/usb/chipidea/usbmisc_imx.c

index 7f68b5e..53f48cc 100644 (file)
@@ -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
  *
index b367a45..b7d21b0 100644 (file)
@@ -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);
 }