Message ID | 20170302124532.GA29046@amd (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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@ucw.cz> > > 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@ideasonboard.com> > 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; > }
On Thu, Mar 02, 2017 at 04:46:42PM +0200, Laurent Pinchart wrote: > 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@ucw.cz> > > > > 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@ideasonboard.com> Applied to ccp2 branch with the error message moved. The old message is still printed if the error code is different.
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; 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; }
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@ucw.cz>