if (ret < 0)
return ret;
- ret = mt9m114_set_state(sensor, MT9M114_SYS_STATE_ENTER_CONFIG_CHANGE);
- if (ret < 0)
- return ret;
-
- ret = mt9m114_set_state(sensor, MT9M114_SYS_STATE_ENTER_SUSPEND);
- if (ret < 0)
- return ret;
-
return 0;
}
if (ret)
return ret;
+ ret = mt9m114_initialize(sensor);
+ if (ret)
+ goto error;
+
ret = mt9m114_configure_ifp(sensor, ifp_state);
if (ret)
goto error;
{
struct v4l2_subdev *sd = dev_get_drvdata(dev);
struct mt9m114 *sensor = ifp_to_mt9m114(sd);
- int ret;
-
- ret = mt9m114_power_on(sensor);
- if (ret)
- return ret;
-
- ret = mt9m114_initialize(sensor);
- if (ret) {
- mt9m114_power_off(sensor);
- return ret;
- }
- return 0;
+ return mt9m114_power_on(sensor);
}
static int __maybe_unused mt9m114_runtime_suspend(struct device *dev)
/*
* Identify the sensor. The driver supports runtime PM, but needs to
* work when runtime PM is disabled in the kernel. To that end, power
- * the sensor on manually here, and initialize it after identification
- * to reach the same state as if resumed through runtime PM.
+ * the sensor on manually here to reach the same state as if resumed
+ * through runtime PM.
*/
ret = mt9m114_power_on(sensor);
if (ret < 0) {
if (ret < 0)
goto error_power_off;
- ret = mt9m114_initialize(sensor);
- if (ret < 0)
- goto error_power_off;
-
/*
* Enable runtime PM with autosuspend. As the device has been powered
* manually, mark it as active, and increase the usage count without