mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
thunderbolt: Verify Router Ready bit is set after router enumeration
The USB4 Connection Manager guide specifies that after enumerating a router, the Connection Manager shall verify that the Router Ready bit (ROUTER_CS_6.RR) has been set to ensure hardware configuration has completed. Currently, this step is missing from the enumeration sequence. Add this check to follow the Connection Manager guide more closely. Signed-off-by: Gil Fine <gil.fine@linux.intel.com> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
This commit is contained in:
parent
69a7b98770
commit
062023c436
|
|
@ -216,6 +216,7 @@ struct tb_regs_switch_header {
|
|||
#define ROUTER_CS_6_WOPS BIT(2)
|
||||
#define ROUTER_CS_6_WOUS BIT(3)
|
||||
#define ROUTER_CS_6_HCI BIT(18)
|
||||
#define ROUTER_CS_6_RR BIT(24)
|
||||
#define ROUTER_CS_6_CR BIT(25)
|
||||
#define ROUTER_CS_7 0x07
|
||||
#define ROUTER_CS_9 0x09
|
||||
|
|
|
|||
|
|
@ -294,7 +294,12 @@ int usb4_switch_setup(struct tb_switch *sw)
|
|||
/* TBT3 supported by the CM */
|
||||
val &= ~ROUTER_CS_5_CNS;
|
||||
|
||||
return tb_sw_write(sw, &val, TB_CFG_SWITCH, ROUTER_CS_5, 1);
|
||||
ret = tb_sw_write(sw, &val, TB_CFG_SWITCH, ROUTER_CS_5, 1);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
return tb_switch_wait_for_bit(sw, ROUTER_CS_6, ROUTER_CS_6_RR,
|
||||
ROUTER_CS_6_RR, 500);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user