Commit a4573084 authored by Pavel Machek's avatar Pavel Machek Committed by Mauro Carvalho Chehab

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: default avatarPavel Machek <pavel@ucw.cz>
Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent a6b687df
......@@ -1880,6 +1880,7 @@ static int isp_initialize_modules(struct isp_device *isp)
ret = omap3isp_ccp2_init(isp);
if (ret < 0) {
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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment