@@ -2408,6 +2408,15 @@ static int cal_probe(struct platform_device *pdev)
if (ret)
return ret;
+ /* Read the revision and hardware info to verify hardware access. */
+ pm_runtime_enable(&pdev->dev);
+ ret = pm_runtime_get_sync(&pdev->dev);
+ if (ret)
+ goto error_pm_runtime;
+
+ cal_get_hwinfo(cal);
+ pm_runtime_put_sync(&pdev->dev);
+
/* Create CAMERARX PHYs. */
for (i = 0; i < cal->data->num_csi2_phy; ++i) {
cal->phy[i] = cal_camerarx_create(cal, i);
@@ -2445,25 +2454,13 @@ static int cal_probe(struct platform_device *pdev)
}
}
- /* Read the revision and hardware info to verify hardware access. */
- pm_runtime_enable(&pdev->dev);
- ret = pm_runtime_get_sync(&pdev->dev);
- if (ret)
- goto error_pm_runtime;
-
- cal_get_hwinfo(cal);
- pm_runtime_put_sync(&pdev->dev);
-
/* Register the media device. */
ret = cal_media_register(cal);
if (ret)
- goto error_pm_runtime;
+ goto error_context;
return 0;
-error_pm_runtime:
- pm_runtime_disable(&pdev->dev);
-
error_context:
for (i = 0; i < ARRAY_SIZE(cal->ctx); i++) {
ctx = cal->ctx[i];
@@ -2477,6 +2474,9 @@ static int cal_probe(struct platform_device *pdev)
for (i = 0; i < ARRAY_SIZE(cal->phy); i++)
cal_camerarx_destroy(cal->phy[i]);
+error_pm_runtime:
+ pm_runtime_disable(&pdev->dev);
+
return ret;
}