From 73864f63c22d01a797f44ae7a05cd596dec810ec Mon Sep 17 00:00:00 2001
From: Sebastian Reichel <sebastian.reichel@collabora.com>
Date: Fri, 18 Apr 2025 18:39:45 +0200
Subject: [PATCH] usb: typec: tcpci: Improve error printing during probe

It's currently quite hard to understand why a tcpci controller
probe might run into probe defer. Let's improve that by adding
some error messages.

Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
 drivers/usb/typec/tcpm/tcpci.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/typec/tcpm/tcpci.c b/drivers/usb/typec/tcpm/tcpci.c
index 19ab6647af706..bacac83d44d17 100644
--- a/drivers/usb/typec/tcpm/tcpci.c
+++ b/drivers/usb/typec/tcpm/tcpci.c
@@ -919,24 +919,25 @@ static int tcpci_probe(struct i2c_client *client)
 	err = regmap_raw_write(chip->data.regmap, TCPC_ALERT_MASK, &val,
 			       sizeof(u16));
 	if (err < 0)
-		return err;
+		return dev_err_probe(&client->dev, err, "failed to disable IRQs\n");
 
 	err = tcpci_check_std_output_cap(chip->data.regmap,
 					 TCPC_STD_OUTPUT_CAP_ORIENTATION);
 	if (err < 0)
-		return err;
+		return dev_err_probe(&client->dev, err, "failed to check output capability\n");
 
 	chip->data.set_orientation = err;
 
 	chip->tcpci = tcpci_register_port(&client->dev, &chip->data);
 	if (IS_ERR(chip->tcpci))
-		return PTR_ERR(chip->tcpci);
+		return dev_err_probe(&client->dev, PTR_ERR(chip->tcpci), "failed to register tcpci port\n");
 
 	err = devm_request_threaded_irq(&client->dev, client->irq, NULL,
 					_tcpci_irq,
 					IRQF_SHARED | IRQF_ONESHOT,
 					dev_name(&client->dev), chip);
 	if (err < 0)
+		dev_err_probe(&client->dev, err, "failed to request irq\n");
 		goto unregister_port;
 
 	/* Enable chip interrupts at last */
-- 
GitLab