Steve, Phiipp, On Thu, Mar 1, 2018 at 1:02 PM, Fabio Estevam <festevam@xxxxxxxxx> wrote: > So imx_csi_probe() does not succeed anymore since > devm_pinctrl_get_select_default() always fails. > > Not sure I understand the comments that explain the need for pinctrl > handling inside the driver. > > Can't we just get rid of it like this? Just tested and if devm_pinctrl_get_select_default() is removed, I am not able to change the ipu csi pinctrl settings anymore. I had to ignore devm_pinctrl_get_select_default() error value so that the driver can probe again: diff --git a/drivers/staging/media/imx/imx-media-csi.c b/drivers/staging/media/imx/imx-media-csi.c index 5a195f8..c40f786 100644 --- a/drivers/staging/media/imx/imx-media-csi.c +++ b/drivers/staging/media/imx/imx-media-csi.c @@ -1797,11 +1797,8 @@ static int imx_csi_probe(struct platform_device *pdev) */ priv->dev->of_node = pdata->of_node; pinctrl = devm_pinctrl_get_select_default(priv->dev); - if (IS_ERR(pinctrl)) { - ret = PTR_ERR(priv->vdev); - goto free; - } - + if (IS_ERR(pinctrl)) + dev_dbg(priv->dev, "pintrl_get_select_default() failed\n"); ret = v4l2_async_register_subdev(&priv->sd); if (ret) goto free; Is there a better solution for this issue?