Hi, On Tue, Jul 18, 2017 at 01:01:13AM +0300, Sakari Ailus wrote: > From: Pavel Machek <pavel@xxxxxx> > > 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> > Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> > --- > drivers/media/platform/omap3isp/isp.c | 3 ++- > drivers/media/platform/omap3isp/ispccp2.c | 5 +++++ > 2 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/platform/omap3isp/isp.c b/drivers/media/platform/omap3isp/isp.c > index 80ed5a5f862a..4e6ba7f90e35 100644 > --- a/drivers/media/platform/omap3isp/isp.c > +++ b/drivers/media/platform/omap3isp/isp.c > @@ -1880,7 +1880,8 @@ static int isp_initialize_modules(struct isp_device *isp) > > ret = omap3isp_ccp2_init(isp); > if (ret < 0) { > - dev_err(isp->dev, "CCP2 initialization failed\n"); > + if (ret != -EPROBE_DEFER) > + dev_err(isp->dev, "CCP2 initialization failed\n"); > goto error_ccp2; > } > > diff --git a/drivers/media/platform/omap3isp/ispccp2.c b/drivers/media/platform/omap3isp/ispccp2.c > index 4f8fd0c00748..47210b102bcb 100644 > --- a/drivers/media/platform/omap3isp/ispccp2.c > +++ b/drivers/media/platform/omap3isp/ispccp2.c > @@ -1140,6 +1140,11 @@ 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) { > + dev_dbg(isp->dev, > + "Can't get regulator vdds_csib, deferring probing\n"); > + return -EPROBE_DEFER; > + } I wonder if the right approach wouldn't be to always bail out for errors. devm_regulator_get should provide a dummy regulator if none is specified. If we get an error here it means something is configured incorrectly or we have serious problems. > dev_dbg(isp->dev, > "Could not get regulator vdds_csib\n"); > ccp2->vdds_csib = NULL; -- Sebastian
Attachment:
signature.asc
Description: PGP signature