thunderbolt: Do not program path HopIDs for USB4 routers
authorMika Westerberg <mika.westerberg@linux.intel.com>
Thu, 18 Nov 2021 07:10:59 +0000 (09:10 +0200)
committerMika Westerberg <mika.westerberg@linux.intel.com>
Tue, 7 Dec 2021 12:18:33 +0000 (15:18 +0300)
These fields are marked read-only for USB4 routers so do not touch them
in that case. Update the kernel-doc of tb_dp_port_set_hops() to reflect
this too.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
drivers/thunderbolt/switch.c

index 463cfdc0b42f5f4a3f6d2f7a0344e000d1cf5419..e00f4b878b56a027b18511f695463fc273cf4aa6 100644 (file)
@@ -1322,7 +1322,9 @@ int tb_dp_port_hpd_clear(struct tb_port *port)
  * @aux_tx: AUX TX Hop ID
  * @aux_rx: AUX RX Hop ID
  *
- * Programs specified Hop IDs for DP IN/OUT port.
+ * Programs specified Hop IDs for DP IN/OUT port. Can be called for USB4
+ * router DP adapters too but does not program the values as the fields
+ * are read-only.
  */
 int tb_dp_port_set_hops(struct tb_port *port, unsigned int video,
                        unsigned int aux_tx, unsigned int aux_rx)
@@ -1330,6 +1332,9 @@ int tb_dp_port_set_hops(struct tb_port *port, unsigned int video,
        u32 data[2];
        int ret;
 
+       if (tb_switch_is_usb4(port->sw))
+               return 0;
+
        ret = tb_port_read(port, data, TB_CFG_PORT,
                           port->cap_adap + ADP_DP_CS_0, ARRAY_SIZE(data));
        if (ret)