• Mika Westerberg's avatar
    thunderbolt: Add USB4 router operation proxy for firmware connection manager · 9039387e
    Mika Westerberg authored
    Intel Maple Ridge and Tiger Lake connection manager firmware implements
    a USB4 router operation proxy that should be used instead of direct
    register access to avoid races with the firmware. This is supported in
    all firmwares where the protocol version field returned in the driver
    ready response is 3 (or higher).
    
    This adds the USB4 router proxy operations support to the driver so that
    we first check the protocol version and if it is 3 (or higher) the USB4
    router operation is run through the firmware provided proxy. Otherwise
    the native version is used.
    
    Most USB4 router proxy operations are pretty straightforward except
    NVM_AUTH where the firmware only responds once the router is restarted
    but before it sends device connected notification. To support this we
    split the operation so that the reply is received asynchronously and
    stored to struct icm. This last reply is then returned in
    icm_usb4_switch_nvm_authenticate_status() if available.
    Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
    9039387e
tb_msgs.h 11.4 KB