]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: i2c: ov08d10: fix runtime PM handling in probe
authorMatthias Fend <matthias.fend@emfend.at>
Tue, 24 Mar 2026 10:41:35 +0000 (11:41 +0100)
committerHans Verkuil <hverkuil+cisco@kernel.org>
Thu, 26 Mar 2026 13:33:07 +0000 (14:33 +0100)
Set the device's runtime PM status and enable runtime PM before registering
the async sub-device. This is needed to avoid the case where the device is
runtime PM resumed while runtime PM has not been enabled yet.

Remove the related, non-driver-specific comment while at it.

Fixes: 7be91e02ed57 ("media: i2c: Add ov08d10 camera sensor driver")
Cc: stable@vger.kernel.org
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Matthias Fend <matthias.fend@emfend.at>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
drivers/media/i2c/ov08d10.c

index 43ec2a1f2fcffb7fa11a6268af3c2edc4df129f3..5b02f61e359fa900da9290c1c151aa01b9d70e6e 100644 (file)
@@ -1430,6 +1430,9 @@ static int ov08d10_probe(struct i2c_client *client)
                goto probe_error_v4l2_ctrl_handler_free;
        }
 
+       pm_runtime_set_active(ov08d10->dev);
+       pm_runtime_enable(ov08d10->dev);
+
        ret = v4l2_async_register_subdev_sensor(&ov08d10->sd);
        if (ret < 0) {
                dev_err(ov08d10->dev, "failed to register V4L2 subdev: %d",
@@ -1437,17 +1440,13 @@ static int ov08d10_probe(struct i2c_client *client)
                goto probe_error_media_entity_cleanup;
        }
 
-       /*
-        * Device is already turned on by i2c-core with ACPI domain PM.
-        * Enable runtime PM and turn off the device.
-        */
-       pm_runtime_set_active(ov08d10->dev);
-       pm_runtime_enable(ov08d10->dev);
        pm_runtime_idle(ov08d10->dev);
 
        return 0;
 
 probe_error_media_entity_cleanup:
+       pm_runtime_disable(ov08d10->dev);
+       pm_runtime_set_suspended(ov08d10->dev);
        media_entity_cleanup(&ov08d10->sd.entity);
 
 probe_error_v4l2_ctrl_handler_free: