Commit 1cfe77a5 authored by Sakari Ailus's avatar Sakari Ailus Committed by Hans Verkuil
Browse files

media: ov2740: Enable runtime PM before registering the async subdev



Enable runtime PM before registering the async subdev as the driver UAPI
may become accessible immediately after the registration. Runtime PM needs
to be enabled by that time.

Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
parent 8a695a29
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -1130,6 +1130,12 @@ static int ov2740_probe(struct i2c_client *client)
		goto probe_error_v4l2_ctrl_handler_free;
	}

	/* Set the device's state to active if it's in D0 state. */
	if (full_power)
		pm_runtime_set_active(&client->dev);
	pm_runtime_enable(&client->dev);
	pm_runtime_idle(&client->dev);

	ret = v4l2_async_register_subdev_sensor(&ov2740->sd);
	if (ret < 0) {
		dev_err_probe(dev, ret, "failed to register V4L2 subdev\n");
@@ -1140,16 +1146,12 @@ static int ov2740_probe(struct i2c_client *client)
	if (ret)
		dev_warn(&client->dev, "register nvmem failed, ret %d\n", ret);

	/* Set the device's state to active if it's in D0 state. */
	if (full_power)
		pm_runtime_set_active(&client->dev);
	pm_runtime_enable(&client->dev);
	pm_runtime_idle(&client->dev);

	return 0;

probe_error_media_entity_cleanup:
	media_entity_cleanup(&ov2740->sd.entity);
	pm_runtime_disable(&client->dev);
	pm_runtime_set_suspended(&client->dev);

probe_error_v4l2_ctrl_handler_free:
	v4l2_ctrl_handler_free(ov2740->sd.ctrl_handler);