Quoting Sakari Ailus (2023-11-01 09:42:41) > As the sensor may be accessible right after its async sub-device is > registered, enable runtime PM before doing so. > This sounds pretty reasonable to me. Do we have any sort of cocci checks for these sort of things? Reviewed-by: Kieran Bingham <kieran.bingham@xxxxxxxxxxxxxxxx> > Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> > --- > drivers/media/i2c/imx319.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/drivers/media/i2c/imx319.c b/drivers/media/i2c/imx319.c > index 5378f607f340..f8bce161318d 100644 > --- a/drivers/media/i2c/imx319.c > +++ b/drivers/media/i2c/imx319.c > @@ -2464,19 +2464,21 @@ static int imx319_probe(struct i2c_client *client) > goto error_handler_free; > } > > - ret = v4l2_async_register_subdev_sensor(&imx319->sd); > - if (ret < 0) > - goto error_media_entity; > - > /* 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(&imx319->sd); > + if (ret < 0) > + goto error_media_entity_pm; > + > return 0; > > -error_media_entity: > +error_media_entity_pm: > + pm_runtime_disable(&client->dev); > + pm_runtime_set_suspended(&client->dev); > media_entity_cleanup(&imx319->sd.entity); > > error_handler_free: > -- > 2.39.2 >