media: omap3isp: Return -EPROBE_DEFER if the required regulators can't be obtained
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> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
a6b687df8a
commit
a4573084cb
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -1137,6 +1137,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;
|
||||
}
|
||||
dev_dbg(isp->dev,
|
||||
"Could not get regulator vdds_csib\n");
|
||||
ccp2->vdds_csib = NULL;
|
||||
|
|
Loading…
Reference in New Issue