[PATCH 05/19] thunderbolt: Wait a bit longer for root switch config space

Anthony Wong anthony.wong at canonical.com
Wed Mar 28 12:31:12 UTC 2018

From: Mika Westerberg <mika.westerberg at linux.intel.com>

In some case reading root switch config space takes longer than what we
are currently waiting in the driver resulting timeout and failure.
Increase number of retries to allow some more time for the root switch
config space to become accesssible.

Also log an error if the timeout is exceeded so we know why the driver
probe failed.

Signed-off-by: Mika Westerberg <mika.westerberg at linux.intel.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko at gmail.com>
(cherry picked from commit 44b51bbb16d033ac1984123349ec055bae09b623)
Signed-off-by: Anthony Wong <anthony.wong at canonical.com>
 drivers/thunderbolt/icm.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/thunderbolt/icm.c b/drivers/thunderbolt/icm.c
index 1822260..1183321 100644
--- a/drivers/thunderbolt/icm.c
+++ b/drivers/thunderbolt/icm.c
@@ -828,7 +828,7 @@ __icm_driver_ready(struct tb *tb, enum tb_security_level *security_level)
 	struct icm_pkg_driver_ready request = {
 		.hdr.code = ICM_DRIVER_READY,
-	unsigned int retries = 10;
+	unsigned int retries = 50;
 	int ret;
 	memset(&reply, 0, sizeof(reply));
@@ -856,6 +856,7 @@ __icm_driver_ready(struct tb *tb, enum tb_security_level *security_level)
 	} while (--retries);
+	tb_err(tb, "failed to read root switch config space, giving up\n");
 	return -ETIMEDOUT;

More information about the kernel-team mailing list