On Tue May 20 14:17:44 2025 +0100, Daniel Scally wrote:
> The OV5670 is found on a Dell 7212, coupled to Intel's CIO2 CSI-2
> receiver. The ACPI tables don't describe the connection properly and
> so this is one of the sensors that needs to wait for the ipu-bridge
> to set up the graph with software nodes. Defer probe if an endpoint
> isn't found to allow time for that.
> 
> Signed-off-by: Daniel Scally <dan.sca...@ideasonboard.com>
> Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com>
> Signed-off-by: Hans Verkuil <hverk...@xs4all.nl>

Patch committed.

Thanks,
Hans Verkuil

 drivers/media/i2c/ov5670.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

---

diff --git a/drivers/media/i2c/ov5670.c b/drivers/media/i2c/ov5670.c
index c54bbc207189..b9efb2d2276a 100644
--- a/drivers/media/i2c/ov5670.c
+++ b/drivers/media/i2c/ov5670.c
@@ -2688,10 +2688,15 @@ static int ov5670_probe(struct i2c_client *client)
        if (ret)
                return dev_err_probe(&client->dev, ret, "GPIO probe failed\n");
 
-       /* Graph Endpoint */
+       /*
+        * Graph Endpoint. If it's missing we defer rather than fail, as this
+        * sensor is known to co-exist on systems with the IPU3 and so it might
+        * be created by the ipu-bridge.
+        */
        handle = fwnode_graph_get_next_endpoint(dev_fwnode(&client->dev), NULL);
        if (!handle)
-               return dev_err_probe(&client->dev, -ENXIO, "Endpoint for node 
get failed\n");
+               return dev_err_probe(&client->dev, -EPROBE_DEFER,
+                                    "Endpoint for node get failed\n");
 
        ov5670->endpoint.bus_type = V4L2_MBUS_CSI2_DPHY;
        ov5670->endpoint.bus.mipi_csi2.num_data_lanes = 2;

Reply via email to