Re: [PATCH] usb: chipidea: imx: properly check for usbmisc

From: Peter Chen
Date: Thu Aug 06 2015 - 23:22:17 EST


On Thu, Aug 06, 2015 at 03:09:54PM +0200, Tomeu Vizoso wrote:
> If usbmisc hasn't probed yet, defer the probe.
>
> It's not enough to check if the platform device for the OF node of the
> usbmisc has been registered, but it also needs to have been probed
> already before we can call imx_usbmisc_init().
>
> This can happen if the order in which devices are probed change due to
> async probing or on-demand probing of dependencies.
>
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx>
> ---
> drivers/usb/chipidea/ci_hdrc_imx.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c
> index 504554e41922..e3c61d5e9270 100644
> --- a/drivers/usb/chipidea/ci_hdrc_imx.c
> +++ b/drivers/usb/chipidea/ci_hdrc_imx.c
> @@ -104,7 +104,7 @@ static struct imx_usbmisc_data *usbmisc_get_init_data(struct device *dev)
> misc_pdev = of_find_device_by_node(args.np);
> of_node_put(args.np);
>
> - if (!misc_pdev)
> + if (!misc_pdev || !platform_get_drvdata(misc_pdev))
> return ERR_PTR(-EPROBE_DEFER);

"||"? or "&&"? You want usbmisc has already been probed.


>
> data->dev = &misc_pdev->dev;
> --
> 2.4.3
>

--

Best Regards,
Peter Chen
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/