mirror of
https://github.com/torvalds/linux
synced 2024-10-07 11:53:31 +00:00
thunderbolt: Make PCIe tunnel setup and teardown follow CM guide
The USB4 Connection Manager guide suggests that the PCIe paths are enabled from the upstream adapter to the downstream adapter and vice versa on disable so make the driver follows this sequence. 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
0b663ec9fe
commit
54967f4177
|
@ -199,14 +199,21 @@ static int tb_pci_activate(struct tb_tunnel *tunnel, bool activate)
|
|||
return res;
|
||||
}
|
||||
|
||||
res = tb_pci_port_enable(tunnel->src_port, activate);
|
||||
if (activate)
|
||||
res = tb_pci_port_enable(tunnel->dst_port, activate);
|
||||
else
|
||||
res = tb_pci_port_enable(tunnel->src_port, activate);
|
||||
if (res)
|
||||
return res;
|
||||
|
||||
if (tb_port_is_pcie_up(tunnel->dst_port)) {
|
||||
res = tb_pci_port_enable(tunnel->dst_port, activate);
|
||||
|
||||
if (activate) {
|
||||
res = tb_pci_port_enable(tunnel->src_port, activate);
|
||||
if (res)
|
||||
return res;
|
||||
} else {
|
||||
/* Downstream router could be unplugged */
|
||||
tb_pci_port_enable(tunnel->dst_port, activate);
|
||||
}
|
||||
|
||||
return activate ? 0 : tb_pci_set_ext_encapsulation(tunnel, activate);
|
||||
|
|
Loading…
Reference in a new issue