• Gil Fine's avatar
    thunderbolt: Configure asymmetric link if needed and bandwidth allows · 3e36528c
    Gil Fine authored
    USB4 v2 spec defines a Gen 4 link that can operate as an asymmetric
    120/40G. When the link is asymmetric, the USB4 port on one side of the
    link operates with three TX lanes and one RX lane, while the USB4 port
    on the opposite side of the link operates with three RX lanes and one TX
    lane. Using asymmetric link we can get much more bandwidth from one
    direction and that allows us to support the new Ultra High Bit Rate
    DisplayPort modes (that consume up to 77.37 Gb/s).
    
    Add the basic logic for changing Gen 4 links to asymmetric and back
    following the below rules:
    
      1) The default threshold is 45 Gb/s (tunable by asym_threshold)
      2) When DisplayPort tunnel is established, or when there is bandwidth
         request through bandwidth allocation mode, the links can be
         transitioned to asymmetric or symmetric (depending on the
         required bandwidth).
      3) Only DisplayPort bandwidth on a link, is taken into account when
         deciding whether a link is transitioned to asymmetric or symmetric
      4) If bandwidth on a link is >= asym_threshold transition the link to
         asymmetric
      5) If bandwidth on a link < asym_threshold transition the link to
         symmetric (unless the bandwidth request is above currently
         allocated on a tunnel).
      6) If a USB4 v2 device router with symmetric link is connected,
         transition all the links above it to symmetric if the bandwidth
         allows.
    Signed-off-by: default avatarGil Fine <gil.fine@linux.intel.com>
    Co-developed-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
    3e36528c
tb.c 74 KB