From: Greg Kroah-Hartman Date: Mon, 27 Mar 2023 17:02:07 +0000 (+0200) Subject: 5.10-stable patches X-Git-Tag: v5.15.105~53 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f9745d55b3cb17ac04b504ae487c2a91ae225203;p=thirdparty%2Fkernel%2Fstable-queue.git 5.10-stable patches added patches: thunderbolt-use-const-qualifier-for-ring_interrupt_index.patch thunderbolt-use-scale-field-when-allocating-usb3-bandwidth.patch uas-add-us_fl_no_report_opcodes-for-jmicron-jms583gen-2.patch --- diff --git a/queue-5.10/series b/queue-5.10/series index 5e21ddf65a4..a0194a42a9e 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -59,3 +59,6 @@ platform-chrome-cros_ec_chardev-fix-kernel-data-leak.patch hwmon-fix-potential-sensor-registration-fail-if-of_n.patch hwmon-it87-fix-voltage-scaling-for-chips-with-10.9mv.patch scsi-qla2xxx-perform-lockless-command-completion-in-abort-path.patch +uas-add-us_fl_no_report_opcodes-for-jmicron-jms583gen-2.patch +thunderbolt-use-scale-field-when-allocating-usb3-bandwidth.patch +thunderbolt-use-const-qualifier-for-ring_interrupt_index.patch diff --git a/queue-5.10/thunderbolt-use-const-qualifier-for-ring_interrupt_index.patch b/queue-5.10/thunderbolt-use-const-qualifier-for-ring_interrupt_index.patch new file mode 100644 index 00000000000..51c34c41c16 --- /dev/null +++ b/queue-5.10/thunderbolt-use-const-qualifier-for-ring_interrupt_index.patch @@ -0,0 +1,33 @@ +From 1716efdb07938bd6510e1127d02012799112c433 Mon Sep 17 00:00:00 2001 +From: Mario Limonciello +Date: Fri, 10 Mar 2023 11:20:49 -0600 +Subject: thunderbolt: Use const qualifier for `ring_interrupt_index` + +From: Mario Limonciello + +commit 1716efdb07938bd6510e1127d02012799112c433 upstream. + +`ring_interrupt_index` doesn't change the data for `ring` so mark it as +const. This is needed by the following patch that disables interrupt +auto clear for rings. + +Cc: Sanju Mehta +Cc: stable@vger.kernel.org +Signed-off-by: Mario Limonciello +Signed-off-by: Mika Westerberg +Signed-off-by: Greg Kroah-Hartman +--- + drivers/thunderbolt/nhi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/thunderbolt/nhi.c ++++ b/drivers/thunderbolt/nhi.c +@@ -36,7 +36,7 @@ + + #define NHI_MAILBOX_TIMEOUT 500 /* ms */ + +-static int ring_interrupt_index(struct tb_ring *ring) ++static int ring_interrupt_index(const struct tb_ring *ring) + { + int bit = ring->hop; + if (!ring->is_tx) diff --git a/queue-5.10/thunderbolt-use-scale-field-when-allocating-usb3-bandwidth.patch b/queue-5.10/thunderbolt-use-scale-field-when-allocating-usb3-bandwidth.patch new file mode 100644 index 00000000000..6ee9bbdaca7 --- /dev/null +++ b/queue-5.10/thunderbolt-use-scale-field-when-allocating-usb3-bandwidth.patch @@ -0,0 +1,60 @@ +From c82510b1d87bdebfe916048857d2ef46f1778aa5 Mon Sep 17 00:00:00 2001 +From: Mika Westerberg +Date: Tue, 27 Dec 2022 11:55:26 +0200 +Subject: thunderbolt: Use scale field when allocating USB3 bandwidth + +From: Mika Westerberg + +commit c82510b1d87bdebfe916048857d2ef46f1778aa5 upstream. + +When tunneling aggregated USB3 (20 Gb/s) the bandwidth values that are +programmed to the ADP_USB3_CS_2 go higher than 4096 and that does not +fit anymore to the 12-bit field. Fix this by scaling the value using +the scale field accordingly. + +Fixes: 3b1d8d577ca8 ("thunderbolt: Implement USB3 bandwidth negotiation routines") +Cc: stable@vger.kernel.org +Signed-off-by: Mika Westerberg +Signed-off-by: Greg Kroah-Hartman +--- + drivers/thunderbolt/usb4.c | 22 +++++++++++++++++----- + 1 file changed, 17 insertions(+), 5 deletions(-) + +--- a/drivers/thunderbolt/usb4.c ++++ b/drivers/thunderbolt/usb4.c +@@ -1636,18 +1636,30 @@ static int usb4_usb3_port_write_allocate + int downstream_bw) + { + u32 val, ubw, dbw, scale; +- int ret; ++ int ret, max_bw; + +- /* Read the used scale, hardware default is 0 */ +- ret = tb_port_read(port, &scale, TB_CFG_PORT, +- port->cap_adap + ADP_USB3_CS_3, 1); ++ /* Figure out suitable scale */ ++ scale = 0; ++ max_bw = max(upstream_bw, downstream_bw); ++ while (scale < 64) { ++ if (mbps_to_usb3_bw(max_bw, scale) < 4096) ++ break; ++ scale++; ++ } ++ ++ if (WARN_ON(scale >= 64)) ++ return -EINVAL; ++ ++ ret = tb_port_write(port, &scale, TB_CFG_PORT, ++ port->cap_adap + ADP_USB3_CS_3, 1); + if (ret) + return ret; + +- scale &= ADP_USB3_CS_3_SCALE_MASK; + ubw = mbps_to_usb3_bw(upstream_bw, scale); + dbw = mbps_to_usb3_bw(downstream_bw, scale); + ++ tb_port_dbg(port, "scaled bandwidth %u/%u, scale %u\n", ubw, dbw, scale); ++ + ret = tb_port_read(port, &val, TB_CFG_PORT, + port->cap_adap + ADP_USB3_CS_2, 1); + if (ret) diff --git a/queue-5.10/uas-add-us_fl_no_report_opcodes-for-jmicron-jms583gen-2.patch b/queue-5.10/uas-add-us_fl_no_report_opcodes-for-jmicron-jms583gen-2.patch new file mode 100644 index 00000000000..72b55eacc9a --- /dev/null +++ b/queue-5.10/uas-add-us_fl_no_report_opcodes-for-jmicron-jms583gen-2.patch @@ -0,0 +1,36 @@ +From a37eb61b6ec064ac794b8a1e89fd33eb582fe51d Mon Sep 17 00:00:00 2001 +From: Yaroslav Furman +Date: Sun, 12 Mar 2023 11:07:45 +0200 +Subject: uas: Add US_FL_NO_REPORT_OPCODES for JMicron JMS583Gen 2 + +From: Yaroslav Furman + +commit a37eb61b6ec064ac794b8a1e89fd33eb582fe51d upstream. + +Just like other JMicron JMS5xx enclosures, it chokes on report-opcodes, +let's avoid them. + +Signed-off-by: Yaroslav Furman +Cc: stable +Link: https://lore.kernel.org/r/20230312090745.47962-1-yaro330@gmail.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/storage/unusual_uas.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/usb/storage/unusual_uas.h ++++ b/drivers/usb/storage/unusual_uas.h +@@ -111,6 +111,13 @@ UNUSUAL_DEV(0x152d, 0x0578, 0x0000, 0x99 + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_BROKEN_FUA), + ++/* Reported by: Yaroslav Furman */ ++UNUSUAL_DEV(0x152d, 0x0583, 0x0000, 0x9999, ++ "JMicron", ++ "JMS583Gen 2", ++ USB_SC_DEVICE, USB_PR_DEVICE, NULL, ++ US_FL_NO_REPORT_OPCODES), ++ + /* Reported-by: Thinh Nguyen */ + UNUSUAL_DEV(0x154b, 0xf00b, 0x0000, 0x9999, + "PNY",