Hi Pavel, Thank you for the patch. On Thursday 02 Mar 2017 13:45:32 Pavel Machek wrote: > If regulator returns -EPROBE_DEFER, we need to return it too, so that > omap3isp will be re-probed when regulator is ready. > > Signed-off-by: Pavel Machek <pavel@xxxxxx> > > diff --git a/drivers/media/platform/omap3isp/ispccp2.c > b/drivers/media/platform/omap3isp/ispccp2.c index ca09523..b6e055e 100644 > --- a/drivers/media/platform/omap3isp/ispccp2.c > +++ b/drivers/media/platform/omap3isp/ispccp2.c > @@ -1137,10 +1159,12 @@ int omap3isp_ccp2_init(struct isp_device *isp) > if (isp->revision == ISP_REVISION_2_0) { > ccp2->vdds_csib = devm_regulator_get(isp->dev, "vdds_csib"); > if (IS_ERR(ccp2->vdds_csib)) { > + if (PTR_ERR(ccp2->vdds_csib) == -EPROBE_DEFER) > + return -EPROBE_DEFER; This looks good to me, but it will result in the caller printing a "CCP2 initialization failed" error message, which I'm not sure is right. Maybe we should move that message to the omap3isp_ccp2_init() function ? In any case, this change is fine, so Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > dev_dbg(isp->dev, > "Could not get regulator vdds_csib\n"); > ccp2->vdds_csib = NULL; > } > } else if (isp->revision == ISP_REVISION_15_0) { > ccp2->phy = &isp->isp_csiphy1; > } -- Regards, Laurent Pinchart