From: Mika Westerberg Date: Tue, 18 Aug 2020 14:10:00 +0000 (+0300) Subject: thunderbolt: Do not program NFC buffers for USB4 router protocol adapters X-Git-Tag: v5.10-rc1~125^2~26^2~31 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=edfbd68bb51e3747c91dbafb5ed0e45cba202c21;p=thirdparty%2Fkernel%2Flinux.git thunderbolt: Do not program NFC buffers for USB4 router protocol adapters USB4 spec says that NFC buffers field is not used for protocol adapters, only for lane adapters so make tb_port_add_nfc_credits() skip non-lane adapters in order to follow the spec. Signed-off-by: Mika Westerberg --- diff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c index 99effd6be3c18..7ffb3b00b54f7 100644 --- a/drivers/thunderbolt/switch.c +++ b/drivers/thunderbolt/switch.c @@ -601,6 +601,13 @@ int tb_port_add_nfc_credits(struct tb_port *port, int credits) if (credits == 0 || port->sw->is_unplugged) return 0; + /* + * USB4 restricts programming NFC buffers to lane adapters only + * so skip other ports. + */ + if (tb_switch_is_usb4(port->sw) && !tb_port_is_null(port)) + return 0; + nfc_credits = port->config.nfc_credits & ADP_CS_4_NFC_BUFFERS_MASK; nfc_credits += credits;