]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: ipu-bridge: Improve error logging when waiting for IVSC to become ready
authorHans de Goede <hdegoede@redhat.com>
Mon, 23 Jun 2025 11:00:35 +0000 (13:00 +0200)
committerHans Verkuil <hverkuil@xs4all.nl>
Mon, 30 Jun 2025 07:06:21 +0000 (09:06 +0200)
The ipu-bridge code waits for the IVSC to become ready (on platforms with
an IVSC chip).

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.951709] pci 0000:00:14.3: 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 IVSC to become ready

to help with debugging why drivers are not binding if the iVSC does
not become ready for some reason.

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/pci/intel/ipu-bridge.c

index 2124fad0570b1134cfff27196b8a622a5ea36e48..4e579352ab2c0be656576fa223429432940747d8 100644 (file)
@@ -815,7 +815,8 @@ int ipu_bridge_init(struct device *dev,
                return 0;
 
        if (!ipu_bridge_ivsc_is_ready())
-               return -EPROBE_DEFER;
+               return dev_err_probe(dev, -EPROBE_DEFER,
+                                    "waiting for IVSC to become ready\n");
 
        bridge = kzalloc(sizeof(*bridge), GFP_KERNEL);
        if (!bridge)