usb: chipidea: imx: refine the error handling for hsic
authorPeter Chen <peter.chen@nxp.com>
Thu, 10 Oct 2019 00:59:14 +0000 (08:59 +0800)
committerPeter Chen <peter.chen@nxp.com>
Mon, 18 Nov 2019 08:45:30 +0000 (16:45 +0800)
- -EPROBE_DEFER is an error, but without need show error message
- If pintrol is not existed, as pintrol is NULL

Signed-off-by: Peter Chen <peter.chen@nxp.com>
drivers/usb/chipidea/ci_hdrc_imx.c

index 25a38ed27aa8bb106a8eeac6340c951621220b97..c34fcc079cd428e6b3ad75e14c81c0769674ace4 100644 (file)
@@ -330,8 +330,11 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev)
                pdata.flags |= CI_HDRC_IMX_IS_HSIC;
                data->usbmisc_data->hsic = 1;
                data->pinctrl = devm_pinctrl_get(dev);
-               if (IS_ERR(data->pinctrl)) {
-                       dev_err(dev, "pinctrl get failed, err=%ld\n",
+               if (PTR_ERR(data->pinctrl) == -ENODEV)
+                       data->pinctrl = NULL;
+               else if (IS_ERR(data->pinctrl)) {
+                       if (PTR_ERR(data->pinctrl) != -EPROBE_DEFER)
+                               dev_err(dev, "pinctrl get failed, err=%ld\n",
                                        PTR_ERR(data->pinctrl));
                        return PTR_ERR(data->pinctrl);
                }
@@ -361,13 +364,13 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev)
 
                data->hsic_pad_regulator =
                                devm_regulator_get_optional(dev, "hsic");
-               if (PTR_ERR(data->hsic_pad_regulator) == -EPROBE_DEFER) {
-                       return -EPROBE_DEFER;
-               } else if (PTR_ERR(data->hsic_pad_regulator) == -ENODEV) {
+               if (PTR_ERR(data->hsic_pad_regulator) == -ENODEV) {
                        /* no pad regualator is needed */
                        data->hsic_pad_regulator = NULL;
                } else if (IS_ERR(data->hsic_pad_regulator)) {
-                       dev_err(dev, "Get HSIC pad regulator error: %ld\n",
+                       if (PTR_ERR(data->hsic_pad_regulator) != -EPROBE_DEFER)
+                               dev_err(dev,
+                                       "Get HSIC pad regulator error: %ld\n",
                                        PTR_ERR(data->hsic_pad_regulator));
                        return PTR_ERR(data->hsic_pad_regulator);
                }