]> asedeno.scripts.mit.edu Git - linux.git/commit
thunderbolt: Add support for lane bonding
authorMika Westerberg <mika.westerberg@linux.intel.com>
Thu, 21 Mar 2019 17:03:00 +0000 (19:03 +0200)
committerMika Westerberg <mika.westerberg@linux.intel.com>
Sat, 2 Nov 2019 09:13:31 +0000 (12:13 +0300)
commit91c0c12080d0f40ee7275485221b06b4e1e289e1
tree70e4119a7d77b11586f811906af5c8ab66ae7adc
parentb5db76dba0642ea6f2391374f3b2b479014e5bf0
thunderbolt: Add support for lane bonding

Lane bonding allows aggregating two 10/20 Gb/s (depending on the
generation) lanes into a single 20/40 Gb/s bonded link. This allows
sharing the full bandwidth more efficiently. In order to establish lane
bonding we need to check that lane bonding is possible through link
controller and that both ends of the link actually supports 2x widths.
This also means that all the paths should be established through the
primary port so update tb_path_alloc() to handle this as well.

Lane bonding is supported starting from Falcon Ridge (2nd generation)
controllers.

We also expose the current speed and number of lanes under each device
except the host router following similar attribute naming than USB bus.
Expose speed and number of lanes for both directions to allow possibility
of asymmetric link in the future.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Documentation/ABI/testing/sysfs-bus-thunderbolt
drivers/thunderbolt/icm.c
drivers/thunderbolt/lc.c
drivers/thunderbolt/path.c
drivers/thunderbolt/switch.c
drivers/thunderbolt/tb.c
drivers/thunderbolt/tb.h
drivers/thunderbolt/tb_msgs.h
drivers/thunderbolt/tb_regs.h
drivers/thunderbolt/tunnel.c