> Hi Peter,
> 
> I love your patch! Yet something to improve:
> 
> [auto build test ERROR on peter.chen-usb/ci-for-usb-next] [also build test 
> ERROR
> on v4.19-rc8 next-20181012] [if your patch is applied to the wrong git tree, 
> please
> drop us a note to help improve the system]
> 
> url:
> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com
> %2F0day-ci%2Flinux%2Fcommits%2FPeter-Chen%2Fusb-chipidea-imx-add-HSIC-
> support%2F20181016-
> 130840&data=02%7C01%7Cpeter.chen%40nxp.com%7C50f2cf2d6d5341bf72
> cc08d6332ba794%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C63675
> 2662551616821&sdata=clbCGj%2BrgTz56IKDM0DVVyL3e4q79FsCv3vn%2F7
> TSrQI%3D&reserved=0
> base:
> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.kernel.o
> rg%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Fpeter.chen%2Fusb.git&data
> =02%7C01%7Cpeter.chen%40nxp.com%7C50f2cf2d6d5341bf72cc08d6332ba794
> %7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C636752662551616821
> &sdata=6Bp7JvbXAsJ%2FGZCOn0VmtZQSnWUCYhgqlbG8ZrbzBoE%3D&a
> mp;reserved=0 ci-for-usb-next
> config: x86_64-randconfig-x017-201841 (attached as .config)
> compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
> reproduce:
>         # save the attached .config to linux build tree
>         make ARCH=x86_64
> 

Will fix it by adding #include <linux/pinctrl/consumer.h>, it is strange I did 
not meet this error.

Peter

> All errors (new ones prefixed by >>):
> 
>    drivers/usb/chipidea/ci_hdrc_imx.c: In function 'ci_hdrc_imx_notify_event':
> >> drivers/usb/chipidea/ci_hdrc_imx.c:261:10: error: implicit
> >> declaration of function 'pinctrl_select_state'; did you mean
> >> 'inc_node_state'? [-Werror=implicit-function-declaration]
>        ret = pinctrl_select_state(data->pinctrl,
>              ^~~~~~~~~~~~~~~~~~~~
>              inc_node_state
>    drivers/usb/chipidea/ci_hdrc_imx.c: In function 'ci_hdrc_imx_probe':
>    drivers/usb/chipidea/ci_hdrc_imx.c:317:18: error: implicit declaration of 
> function
> 'devm_pinctrl_get'; did you mean 'devm_clk_get'? [-Werror=implicit-function-
> declaration]
>      data->pinctrl = devm_pinctrl_get(dev);
>                      ^~~~~~~~~~~~~~~~
>                      devm_clk_get
>    drivers/usb/chipidea/ci_hdrc_imx.c:317:16: warning: assignment makes 
> pointer
> from integer without a cast [-Wint-conversion]
>      data->pinctrl = devm_pinctrl_get(dev);
>                    ^
> >> drivers/usb/chipidea/ci_hdrc_imx.c:322:23: error: implicit
> >> declaration of function 'pinctrl_lookup_state'; did you mean
> >> 'inc_node_state'? [-Werror=implicit-function-declaration]
>       pinctrl_hsic_idle = pinctrl_lookup_state(data->pinctrl, "idle");
>                           ^~~~~~~~~~~~~~~~~~~~
>                           inc_node_state
>    drivers/usb/chipidea/ci_hdrc_imx.c:322:21: warning: assignment makes 
> pointer
> from integer without a cast [-Wint-conversion]
>       pinctrl_hsic_idle = pinctrl_lookup_state(data->pinctrl, "idle");
>                         ^
>    drivers/usb/chipidea/ci_hdrc_imx.c:338:29: warning: assignment makes 
> pointer
> from integer without a cast [-Wint-conversion]
>       data->pinctrl_hsic_active = pinctrl_lookup_state(data->pinctrl,
>                                 ^
>    cc1: some warnings being treated as errors
> 
> vim +261 drivers/usb/chipidea/ci_hdrc_imx.c
> 
>    250
>    251        static int ci_hdrc_imx_notify_event(struct ci_hdrc *ci, 
> unsigned int event)
>    252        {
>    253                struct device *dev = ci->dev->parent;
>    254                struct ci_hdrc_imx_data *data = dev_get_drvdata(dev);
>    255                int ret = 0;
>    256
>    257                switch (event) {
>    258                case CI_HDRC_IMX_HSIC_ACTIVE_EVENT:
>    259                        if (!IS_ERR(data->pinctrl) &&
>    260                                !IS_ERR(data->pinctrl_hsic_active)) {
>  > 261                                ret = 
> pinctrl_select_state(data->pinctrl,
>    262                                                
> data->pinctrl_hsic_active);
>    263                                if (ret)
>    264                                        dev_err(dev,
>    265                                                "hsic_active select 
> failed, err=%d\n",
>    266                                                ret);
>    267                                return ret;
>    268                        }
>    269                        break;
>    270                case CI_HDRC_IMX_HSIC_SUSPEND_EVENT:
>    271                        if (data->usbmisc_data) {
>    272                                ret = imx_usbmisc_hsic_set_connect(data-
> >usbmisc_data);
>    273                                if (ret)
>    274                                        dev_err(dev,
>    275                                                "hsic_set_connect 
> failed, err=%d\n",
>    276                                                ret);
>    277                                return ret;
>    278                        }
>    279                        break;
>    280                default:
>    281                        break;
>    282                }
>    283
>    284                return ret;
>    285        }
>    286
>    287        static int ci_hdrc_imx_probe(struct platform_device *pdev)
>    288        {
>    289                struct ci_hdrc_imx_data *data;
>    290                struct ci_hdrc_platform_data pdata = {
>    291                        .name           = dev_name(&pdev->dev),
>    292                        .capoffset      = DEF_CAPOFFSET,
>    293                        .notify_event   = ci_hdrc_imx_notify_event,
>    294                };
>    295                int ret;
>    296                const struct of_device_id *of_id;
>    297                const struct ci_hdrc_imx_platform_flag 
> *imx_platform_flag;
>    298                struct device_node *np = pdev->dev.of_node;
>    299                struct device *dev = &pdev->dev;
>    300                struct pinctrl_state *pinctrl_hsic_idle;
>    301
>    302                of_id = of_match_device(ci_hdrc_imx_dt_ids, dev);
>    303                if (!of_id)
>    304                        return -ENODEV;
>    305
>    306                imx_platform_flag = of_id->data;
>    307
>    308                data = devm_kzalloc(&pdev->dev, sizeof(*data), 
> GFP_KERNEL);
>    309                if (!data)
>    310                        return -ENOMEM;
>    311
>    312                platform_set_drvdata(pdev, data);
>    313                data->usbmisc_data = usbmisc_get_init_data(dev);
>    314                if (IS_ERR(data->usbmisc_data))
>    315                        return PTR_ERR(data->usbmisc_data);
>    316
>  > 317                data->pinctrl = devm_pinctrl_get(dev);
>    318                if (IS_ERR(data->pinctrl)) {
>    319                        dev_dbg(dev, "pinctrl get failed, err=%ld\n",
>    320                                                        
> PTR_ERR(data->pinctrl));
>    321                } else {
>  > 322                        pinctrl_hsic_idle = 
> pinctrl_lookup_state(data->pinctrl, "idle");
>    323                        if (IS_ERR(pinctrl_hsic_idle)) {
>    324                                dev_dbg(dev,
>    325                                        "pinctrl_hsic_idle lookup 
> failed, err=%ld\n",
>    326                                                        
> PTR_ERR(pinctrl_hsic_idle));
>    327                        } else {
>    328                                ret = 
> pinctrl_select_state(data->pinctrl,
>    329                                                        
> pinctrl_hsic_idle);
>    330                                if (ret) {
>    331                                        dev_err(dev,
>    332                                                "hsic_idle select 
> failed, err=%d\n",
>    333                                                                        
>         ret);
>    334                                        return ret;
>    335                                }
>    336                        }
>    337
>    338                        data->pinctrl_hsic_active = 
> pinctrl_lookup_state(data->pinctrl,
>    339                                                                        
> "active");
>    340                        if (IS_ERR(data->pinctrl_hsic_active))
>    341                                dev_dbg(dev,
>    342                                        "pinctrl_hsic_active lookup 
> failed, err=%ld\n",
>    343                                                
> PTR_ERR(data->pinctrl_hsic_active));
>    344                }
>    345
>    346                ret = imx_get_clks(dev);
>    347                if (ret)
>    348                        return ret;
>    349
>    350                ret = imx_prepare_enable_clks(dev);
>    351                if (ret)
>    352                        return ret;
>    353
>    354                data->phy = devm_usb_get_phy_by_phandle(dev, 
> "fsl,usbphy", 0);
>    355                if (IS_ERR(data->phy)) {
>    356                        ret = PTR_ERR(data->phy);
>    357                        /* Return -EINVAL if no usbphy is available */
>    358                        if (ret == -ENODEV)
>    359                                ret = -EINVAL;
>    360                        goto err_clk;
>    361                }
>    362
>    363                pdata.usb_phy = data->phy;
>    364
>    365                if ((of_device_is_compatible(np, "fsl,imx53-usb") ||
>    366                     of_device_is_compatible(np, "fsl,imx51-usb")) && 
> pdata.usb_phy
> &&
>    367                    of_usb_get_phy_mode(np) ==
> USBPHY_INTERFACE_MODE_ULPI) {
>    368                        pdata.flags |= CI_HDRC_OVERRIDE_PHY_CONTROL;
>    369                        data->override_phy_control = true;
>    370                        usb_phy_init(pdata.usb_phy);
>    371                }
>    372
>    373                pdata.flags |= imx_platform_flag->flags;
>    374                if (pdata.flags & CI_HDRC_SUPPORTS_RUNTIME_PM)
>    375                        data->supports_runtime_pm = true;
>    376
>    377                if (of_usb_get_phy_mode(dev->of_node) ==
> USBPHY_INTERFACE_MODE_HSIC) {
>    378                        pdata.flags |= CI_HDRC_IMX_IS_HSIC;
>    379                        data->usbmisc_data->hsic = 1;
>    380                        data->hsic_pad_regulator = 
> devm_regulator_get(dev, "hsic");
>    381                        if (PTR_ERR(data->hsic_pad_regulator) == -
> EPROBE_DEFER) {
>    382                                ret = -EPROBE_DEFER;
>    383                                goto err_clk;
>    384                        } else if (PTR_ERR(data->hsic_pad_regulator) == 
> -ENODEV)
> {
>    385                                /* no pad regualator is needed */
>    386                                data->hsic_pad_regulator = NULL;
>    387                        } else if (IS_ERR(data->hsic_pad_regulator)) {
>    388                                dev_err(dev, "Get hsic pad regulator 
> error: %ld\n",
>    389                                                
> PTR_ERR(data->hsic_pad_regulator));
>    390                                ret = PTR_ERR(data->hsic_pad_regulator);
>    391                                goto err_clk;
>    392                        }
>    393
>    394                        if (data->hsic_pad_regulator) {
>    395                                ret = 
> regulator_enable(data->hsic_pad_regulator);
>    396                                if (ret) {
>    397                                        dev_err(dev,
>    398                                                "Fail to enable hsic 
> pad regulator\n");
>    399                                        goto err_clk;
>    400                                }
>    401                        }
>    402                }
>    403
>    404                ret = imx_usbmisc_init(data->usbmisc_data);
>    405                if (ret) {
>    406                        dev_err(dev, "usbmisc init failed, ret=%d\n", 
> ret);
>    407                        goto disable_hsic_regulator;
>    408                }
>    409
>    410                data->ci_pdev = ci_hdrc_add_device(dev,
>    411                                        pdev->resource, 
> pdev->num_resources,
>    412                                        &pdata);
>    413                if (IS_ERR(data->ci_pdev)) {
>    414                        ret = PTR_ERR(data->ci_pdev);
>    415                        if (ret != -EPROBE_DEFER)
>    416                                dev_err(dev, "ci_hdrc_add_device 
> failed, err=%d\n",
>    417                                                ret);
>    418                        goto disable_hsic_regulator;
>    419                }
>    420
>    421                ret = imx_usbmisc_init_post(data->usbmisc_data);
>    422                if (ret) {
>    423                        dev_err(dev, "usbmisc post failed, ret=%d\n", 
> ret);
>    424                        goto disable_device;
>    425                }
>    426
>    427                if (data->supports_runtime_pm) {
>    428                        pm_runtime_set_active(dev);
>    429                        pm_runtime_enable(dev);
>    430                }
>    431
>    432                device_set_wakeup_capable(dev, true);
>    433
>    434                return 0;
>    435
>    436        disable_device:
>    437                ci_hdrc_remove_device(data->ci_pdev);
>    438        disable_hsic_regulator:
>    439                if (data->hsic_pad_regulator)
>    440                        ret = 
> regulator_disable(data->hsic_pad_regulator);
>    441        err_clk:
>    442                imx_disable_unprepare_clks(dev);
>    443                return ret;
>    444        }
>    445
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.01.org
> %2Fpipermail%2Fkbuild-
> all&amp;data=02%7C01%7Cpeter.chen%40nxp.com%7C50f2cf2d6d5341bf72cc08
> d6332ba794%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C636752662
> 551616821&amp;sdata=FeXt%2BW7Jnl%2B%2BihbZjlVj5vZddN2C%2Fuf63PeBJv
> MQ6TA%3D&amp;reserved=0                   Intel Corporation

Reply via email to