media: ov2740: Don't log ov2740_check_hwcfg() errors twice
authorHans de Goede <hdegoede@redhat.com>
Sat, 12 Oct 2024 16:08:03 +0000 (18:08 +0200)
committerHans Verkuil <hverkuil@xs4all.nl>
Thu, 7 Nov 2024 08:05:56 +0000 (09:05 +0100)
All ov2740_check_hwcfg() error-exit paths already log a detailed reason,
logging a second generic "failed to check HW configuration" error is
not useful, drop this.

The one exception is the -EPROBE_DEFER exit on
fwnode_graph_get_next_endpoint() returning NULL.

Call dev_err_probe() there to register the reason for deferring the probe,
this is used if the endpoint is still not there after 30 seconds, e.g. :

 i2c-INT3474:00: deferred probe pending: waiting for fwnode graph endpoint

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Bingbu Cao <bingbu.cao@intel.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/i2c/ov2740.c

index 14cbf2d699a93713af90ed7375a4bb3c30e56c91..732c68b3eef33292f336747bea8182fb8d61041f 100644 (file)
@@ -1132,7 +1132,8 @@ static int ov2740_check_hwcfg(struct device *dev)
         */
        ep = fwnode_graph_get_next_endpoint(fwnode, NULL);
        if (!ep)
-               return -EPROBE_DEFER;
+               return dev_err_probe(dev, -EPROBE_DEFER,
+                                    "waiting for fwnode graph endpoint\n");
 
        ret = fwnode_property_read_u32(fwnode, "clock-frequency", &mclk);
        if (ret) {
@@ -1330,7 +1331,7 @@ static int ov2740_probe(struct i2c_client *client)
 
        ret = ov2740_check_hwcfg(dev);
        if (ret)
-               return dev_err_probe(dev, ret, "failed to check HW configuration\n");
+               return ret;
 
        ov2740->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH);
        if (IS_ERR(ov2740->reset_gpio)) {