media: i2c: imx290: Check for availability in probe()

Currently, the V4L2 subdevice is also created when the device is not
available/connected. From userspace perspective, there is no visible
difference between a working and not-working subdevice (except when
trying it out).

This commit adds a simple preparation step, which includes an
availability check, before the subdev is initialized.

Signed-off-by: Benjamin Bara <benjamin.bara@skidata.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
Benjamin Bara
2024-09-03 16:54:34 +02:00
committed by Mauro Carvalho Chehab
parent a92651b8e2
commit 9755343cb2

View File

@@ -1589,6 +1589,16 @@ static int imx290_probe(struct i2c_client *client)
pm_runtime_set_autosuspend_delay(dev, 1000);
pm_runtime_use_autosuspend(dev);
/*
* Make sure the sensor is available, in STANDBY and not streaming
* before the V4L2 subdev is initialized.
*/
ret = imx290_stop_streaming(imx290);
if (ret) {
ret = dev_err_probe(dev, ret, "Could not initialize device\n");
goto err_pm;
}
/* Initialize the V4L2 subdev. */
ret = imx290_subdev_init(imx290);
if (ret)