]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: hi556: Improve error logging when fwnode is not found
authorHans de Goede <hdegoede@redhat.com>
Thu, 19 Dec 2024 19:27:32 +0000 (20:27 +0100)
committerHans Verkuil <hverkuil@xs4all.nl>
Sat, 15 Feb 2025 14:22:37 +0000 (15:22 +0100)
The hi556 driver waits for the endpoint fwnode to show up in case this
fwnode is created by a bridge-driver.

It does this by returning -EPROBE_DEFER, but it does not use
dev_err_probe() so no reason for deferring gets registered.

After 30 seconds the kernel logs a warning that the probe is still
deferred, which looks like this:

[   33.952052] i2c i2c-INT3537:00: deferred probe pending: (reason unknown)

Use dev_err_probe() when returning -EPROBE_DEFER to register the probe
deferral reason changing the error to:

deferred probe pending: waiting for fwnode graph endpoint

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

index 960d6c2d3d9326dadced3bb836258dc276ec18fd..57c51d0e9c4e8049a977f3a1a7ccc803b829bc29 100644 (file)
@@ -1220,7 +1220,8 @@ static int hi556_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 = v4l2_fwnode_endpoint_alloc_parse(ep, &bus_cfg);
        fwnode_handle_put(ep);