• Mika Westerberg's avatar
    thunderbolt: Add support for XDomain lane bonding · 8e1de704
    Mika Westerberg authored
    The USB4 Inter-Domain Service specification defines a protocol that can
    be used to establish lane bonding between two USB4 domains (hosts). So
    far we have not implemented it because the host controller DMA was not
    fast enough to be able to go over 20 Gbits/s even if lanes were bonded.
    However, starting from Intel Alder Lake CPUs the DMA can go over
    20 Gbits/s so now it makes more sense to add this support to the driver.
    
    Because both ends need to negotiate the bonding we add a simple state
    machine that tracks the connection state and does the necessary steps
    described by the USB4 Inter-Domain Service specification. We only
    establish lane bonding when both sides of the link support it. Otherwise
    we default to use the single lane. Also this is only done when software
    connection manager is used. On systems with firmware based connection
    manager, it handles the high-speed tunneling so bonding lanes is
    specific to the implementation (Intel firmware based connection manager
    does not support lane bonding).
    Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
    8e1de704
tb.c 42.2 KB