[PATCH 07/19] thunderbolt: Don't read the UID if we already know it
Sven Peter
sven at kernel.org
Sun Aug 30 13:19:25 PDT 2026
On Apple Silicon the host router's UID comes from the DROM provided by
the device tree and is already known by the time tb_switch_set_uuid()
runs. Skip reading it from the config space again in that case.
For other USB4 hosts this only drops a duplicate read because
tb_drom_host_read() has already filled in the UID from ROUTER_CS_7
before tb_switch_set_uuid() runs. Device routers keep reading it
unconditionally.
Signed-off-by: Sven Peter <sven at kernel.org>
---
drivers/thunderbolt/switch.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c
index 404c0693df50..3f54a5ae56b0 100644
--- a/drivers/thunderbolt/switch.c
+++ b/drivers/thunderbolt/switch.c
@@ -2692,9 +2692,11 @@ static int tb_switch_set_uuid(struct tb_switch *sw)
return 0;
if (tb_switch_is_usb4(sw)) {
- ret = usb4_switch_read_uid(sw, &sw->uid);
- if (ret)
- return ret;
+ if (tb_route(sw) || !sw->uid) {
+ ret = usb4_switch_read_uid(sw, &sw->uid);
+ if (ret)
+ return ret;
+ }
uid = true;
} else {
/*
--
2.55.0
More information about the linux-arm-kernel
mailing list