]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
i2c: core: add useful info when defer probe
authorXu Yang <xu.yang_2@nxp.com>
Wed, 7 May 2025 10:27:14 +0000 (18:27 +0800)
committerWolfram Sang <wsa+renesas@sang-engineering.com>
Tue, 20 May 2025 09:22:08 +0000 (11:22 +0200)
Add an useful info when failed to get irq/wakeirq due to -EPROBE_DEFER.

Before:
[   15.737361] i2c 2-0050: deferred probe pending: (reason unknown)

After:
[   15.816295] i2c 2-0050: deferred probe pending: tcpci: can't get irq

Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
Reviewed-by: Carlos Song <carlos.song@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
drivers/i2c/i2c-core-base.c

index dc3c60a7d3826dcff07c22112a16730bbba8381a..32ffd12bff9fc78a0e52b08bee199359a3453b67 100644 (file)
@@ -520,7 +520,7 @@ static int i2c_device_probe(struct device *dev)
                                client->flags |= I2C_CLIENT_WAKE;
                }
                if (irq == -EPROBE_DEFER) {
-                       status = irq;
+                       status = dev_err_probe(dev, irq, "can't get irq\n");
                        goto put_sync_adapter;
                }
 
@@ -548,7 +548,7 @@ static int i2c_device_probe(struct device *dev)
 
                wakeirq = fwnode_irq_get_byname(fwnode, "wakeup");
                if (wakeirq == -EPROBE_DEFER) {
-                       status = wakeirq;
+                       status = dev_err_probe(dev, wakeirq, "can't get wakeirq\n");
                        goto put_sync_adapter;
                }