diff options
| author | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
|---|---|---|
| committer | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
| commit | 1ac731c529cd4d6adbce134754b51ff7d822b145 (patch) | |
| tree | 143ab3f35ca5f3b69f583c84e6964b17139c2ec1 /drivers/thunderbolt/quirks.c | |
| parent | 07b4c950f27bef0362dc6ad7ee713aab61d58149 (diff) | |
| parent | 54116d442e001e1b6bd482122043b1870998a1f3 (diff) | |
Merge branch 'next' into for-linus
Prepare input updates for 6.6 merge window.
Diffstat (limited to 'drivers/thunderbolt/quirks.c')
| -rw-r--r-- | drivers/thunderbolt/quirks.c | 44 | 
1 files changed, 44 insertions, 0 deletions
diff --git a/drivers/thunderbolt/quirks.c b/drivers/thunderbolt/quirks.c index b5f2ec79c4d6..1157b8869bcc 100644 --- a/drivers/thunderbolt/quirks.c +++ b/drivers/thunderbolt/quirks.c @@ -20,6 +20,25 @@ static void quirk_dp_credit_allocation(struct tb_switch *sw)  	}  } +static void quirk_clx_disable(struct tb_switch *sw) +{ +	sw->quirks |= QUIRK_NO_CLX; +	tb_sw_dbg(sw, "disabling CL states\n"); +} + +static void quirk_usb3_maximum_bandwidth(struct tb_switch *sw) +{ +	struct tb_port *port; + +	tb_switch_for_each_port(sw, port) { +		if (!tb_port_is_usb3_down(port)) +			continue; +		port->max_bw = 16376; +		tb_port_dbg(port, "USB3 maximum bandwidth limited to %u Mb/s\n", +			    port->max_bw); +	} +} +  struct tb_quirk {  	u16 hw_vendor_id;  	u16 hw_device_id; @@ -37,6 +56,31 @@ static const struct tb_quirk tb_quirks[] = {  	 * DP buffers.  	 */  	{ 0x8087, 0x0b26, 0x0000, 0x0000, quirk_dp_credit_allocation }, +	/* +	 * Limit the maximum USB3 bandwidth for the following Intel USB4 +	 * host routers due to a hardware issue. +	 */ +	{ 0x8087, PCI_DEVICE_ID_INTEL_ADL_NHI0, 0x0000, 0x0000, +		  quirk_usb3_maximum_bandwidth }, +	{ 0x8087, PCI_DEVICE_ID_INTEL_ADL_NHI1, 0x0000, 0x0000, +		  quirk_usb3_maximum_bandwidth }, +	{ 0x8087, PCI_DEVICE_ID_INTEL_RPL_NHI0, 0x0000, 0x0000, +		  quirk_usb3_maximum_bandwidth }, +	{ 0x8087, PCI_DEVICE_ID_INTEL_RPL_NHI1, 0x0000, 0x0000, +		  quirk_usb3_maximum_bandwidth }, +	{ 0x8087, PCI_DEVICE_ID_INTEL_MTL_M_NHI0, 0x0000, 0x0000, +		  quirk_usb3_maximum_bandwidth }, +	{ 0x8087, PCI_DEVICE_ID_INTEL_MTL_P_NHI0, 0x0000, 0x0000, +		  quirk_usb3_maximum_bandwidth }, +	{ 0x8087, PCI_DEVICE_ID_INTEL_MTL_P_NHI1, 0x0000, 0x0000, +		  quirk_usb3_maximum_bandwidth }, +	/* +	 * CLx is not supported on AMD USB4 Yellow Carp and Pink Sardine platforms. +	 */ +	{ 0x0438, 0x0208, 0x0000, 0x0000, quirk_clx_disable }, +	{ 0x0438, 0x0209, 0x0000, 0x0000, quirk_clx_disable }, +	{ 0x0438, 0x020a, 0x0000, 0x0000, quirk_clx_disable }, +	{ 0x0438, 0x020b, 0x0000, 0x0000, quirk_clx_disable },  };  /**  |