]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.12-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Jun 2025 09:48:13 +0000 (11:48 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Jun 2025 09:48:13 +0000 (11:48 +0200)
added patches:
bluetooth-hci_qca-move-the-soc-type-check-to-the-right-place.patch
dt-bindings-phy-imx8mq-usb-fix-fsl-phy-tx-vboost-level-microvolt-property.patch
dt-bindings-usb-cypress-hx3-add-support-for-all-variants.patch
revert-drm-amd-display-more-liberal-vmin-vmax-update-for-freesync.patch
serial-jsm-fix-npe-during-jsm_uart_port_init.patch
thunderbolt-do-not-double-dequeue-a-configuration-request.patch
usb-quirks-add-no_lpm-quirk-for-sandisk-extreme-55ae.patch
usb-serial-pl2303-add-new-chip-pl2303gc-q20-and-pl2303gt-2ab.patch
usb-storage-ignore-uas-driver-for-sandisk-3.2-gen2-storage-device.patch
usb-typec-ucsi-fix-clang-wsign-conversion-warning.patch
usb-usbtmc-fix-timeout-value-in-get_stb.patch

12 files changed:
queue-6.12/bluetooth-hci_qca-move-the-soc-type-check-to-the-right-place.patch [new file with mode: 0644]
queue-6.12/dt-bindings-phy-imx8mq-usb-fix-fsl-phy-tx-vboost-level-microvolt-property.patch [new file with mode: 0644]
queue-6.12/dt-bindings-usb-cypress-hx3-add-support-for-all-variants.patch [new file with mode: 0644]
queue-6.12/revert-drm-amd-display-more-liberal-vmin-vmax-update-for-freesync.patch [new file with mode: 0644]
queue-6.12/serial-jsm-fix-npe-during-jsm_uart_port_init.patch [new file with mode: 0644]
queue-6.12/series
queue-6.12/thunderbolt-do-not-double-dequeue-a-configuration-request.patch [new file with mode: 0644]
queue-6.12/usb-quirks-add-no_lpm-quirk-for-sandisk-extreme-55ae.patch [new file with mode: 0644]
queue-6.12/usb-serial-pl2303-add-new-chip-pl2303gc-q20-and-pl2303gt-2ab.patch [new file with mode: 0644]
queue-6.12/usb-storage-ignore-uas-driver-for-sandisk-3.2-gen2-storage-device.patch [new file with mode: 0644]
queue-6.12/usb-typec-ucsi-fix-clang-wsign-conversion-warning.patch [new file with mode: 0644]
queue-6.12/usb-usbtmc-fix-timeout-value-in-get_stb.patch [new file with mode: 0644]

diff --git a/queue-6.12/bluetooth-hci_qca-move-the-soc-type-check-to-the-right-place.patch b/queue-6.12/bluetooth-hci_qca-move-the-soc-type-check-to-the-right-place.patch
new file mode 100644 (file)
index 0000000..6b659a3
--- /dev/null
@@ -0,0 +1,54 @@
+From 0fb410c914eb03c7e9d821e26d03bac0a239e5db Mon Sep 17 00:00:00 2001
+From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
+Date: Tue, 27 May 2025 09:47:37 +0200
+Subject: Bluetooth: hci_qca: move the SoC type check to the right place
+
+From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
+
+commit 0fb410c914eb03c7e9d821e26d03bac0a239e5db upstream.
+
+Commit 3d05fc82237a ("Bluetooth: qca: set power_ctrl_enabled on NULL
+returned by gpiod_get_optional()") accidentally changed the prevous
+behavior where power control would be disabled without the BT_EN GPIO
+only on QCA_WCN6750 and QCA_WCN6855 while also getting the error check
+wrong. We should treat every IS_ERR() return value from
+devm_gpiod_get_optional() as a reason to bail-out while we should only
+set power_ctrl_enabled to false on the two models mentioned above. While
+at it: use dev_err_probe() to save a LOC.
+
+Cc: stable@vger.kernel.org
+Fixes: 3d05fc82237a ("Bluetooth: qca: set power_ctrl_enabled on NULL returned by gpiod_get_optional()")
+Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
+Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
+Tested-by: Hsin-chen Chuang <chharry@chromium.org>
+Reviewed-by: Hsin-chen Chuang <chharry@chromium.org>
+Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/bluetooth/hci_qca.c |   14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+--- a/drivers/bluetooth/hci_qca.c
++++ b/drivers/bluetooth/hci_qca.c
+@@ -2385,14 +2385,14 @@ static int qca_serdev_probe(struct serde
+               qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable",
+                                              GPIOD_OUT_LOW);
+-              if (IS_ERR(qcadev->bt_en) &&
+-                  (data->soc_type == QCA_WCN6750 ||
+-                   data->soc_type == QCA_WCN6855)) {
+-                      dev_err(&serdev->dev, "failed to acquire BT_EN gpio\n");
+-                      return PTR_ERR(qcadev->bt_en);
+-              }
++              if (IS_ERR(qcadev->bt_en))
++                      return dev_err_probe(&serdev->dev,
++                                           PTR_ERR(qcadev->bt_en),
++                                           "failed to acquire BT_EN gpio\n");
+-              if (!qcadev->bt_en)
++              if (!qcadev->bt_en &&
++                  (data->soc_type == QCA_WCN6750 ||
++                   data->soc_type == QCA_WCN6855))
+                       power_ctrl_enabled = false;
+               qcadev->sw_ctrl = devm_gpiod_get_optional(&serdev->dev, "swctrl",
diff --git a/queue-6.12/dt-bindings-phy-imx8mq-usb-fix-fsl-phy-tx-vboost-level-microvolt-property.patch b/queue-6.12/dt-bindings-phy-imx8mq-usb-fix-fsl-phy-tx-vboost-level-microvolt-property.patch
new file mode 100644 (file)
index 0000000..78eca6b
--- /dev/null
@@ -0,0 +1,48 @@
+From 5b3a91b207c00a8d27f75ce8aaa9860844da72c8 Mon Sep 17 00:00:00 2001
+From: Xu Yang <xu.yang_2@nxp.com>
+Date: Wed, 30 Apr 2025 17:44:59 +0800
+Subject: dt-bindings: phy: imx8mq-usb: fix fsl,phy-tx-vboost-level-microvolt property
+
+From: Xu Yang <xu.yang_2@nxp.com>
+
+commit 5b3a91b207c00a8d27f75ce8aaa9860844da72c8 upstream.
+
+The ticket TKT0676370 shows the description of TX_VBOOST_LVL is wrong in
+register PHY_CTRL3 bit[31:29].
+
+  011: Corresponds to a launch amplitude of 1.12 V.
+  010: Corresponds to a launch amplitude of 1.04 V.
+  000: Corresponds to a launch amplitude of 0.88 V.
+
+After updated:
+
+  011: Corresponds to a launch amplitude of 0.844 V.
+  100: Corresponds to a launch amplitude of 1.008 V.
+  101: Corresponds to a launch amplitude of 1.156 V.
+
+This will correct it accordingly.
+
+Fixes: b2e75563dc39 ("dt-bindings: phy: imx8mq-usb: add phy tuning properties")
+Cc: stable@vger.kernel.org
+Reviewed-by: Jun Li <jun.li@nxp.com>
+Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
+Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
+Link: https://lore.kernel.org/r/20250430094502.2723983-1-xu.yang_2@nxp.com
+Signed-off-by: Vinod Koul <vkoul@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ Documentation/devicetree/bindings/phy/fsl,imx8mq-usb-phy.yaml |    3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/Documentation/devicetree/bindings/phy/fsl,imx8mq-usb-phy.yaml
++++ b/Documentation/devicetree/bindings/phy/fsl,imx8mq-usb-phy.yaml
+@@ -58,8 +58,7 @@ properties:
+   fsl,phy-tx-vboost-level-microvolt:
+     description:
+       Adjust the boosted transmit launch pk-pk differential amplitude
+-    minimum: 880
+-    maximum: 1120
++    enum: [844, 1008, 1156]
+   fsl,phy-comp-dis-tune-percent:
+     description:
diff --git a/queue-6.12/dt-bindings-usb-cypress-hx3-add-support-for-all-variants.patch b/queue-6.12/dt-bindings-usb-cypress-hx3-add-support-for-all-variants.patch
new file mode 100644 (file)
index 0000000..5dc2d38
--- /dev/null
@@ -0,0 +1,57 @@
+From 1ad4b5a7de16806afc1aeaf012337e62af04e001 Mon Sep 17 00:00:00 2001
+From: Lukasz Czechowski <lukasz.czechowski@thaumatec.com>
+Date: Fri, 25 Apr 2025 17:18:07 +0200
+Subject: dt-bindings: usb: cypress,hx3: Add support for all variants
+
+From: Lukasz Czechowski <lukasz.czechowski@thaumatec.com>
+
+commit 1ad4b5a7de16806afc1aeaf012337e62af04e001 upstream.
+
+The Cypress HX3 hubs use different default PID value depending
+on the variant. Update compatibles list.
+Becasuse all hub variants use the same driver data, allow the
+dt node to have two compatibles: leftmost which matches the HW
+exactly, and the second one as fallback.
+
+Fixes: 1eca51f58a10 ("dt-bindings: usb: Add binding for Cypress HX3 USB 3.0 family")
+Cc: stable@vger.kernel.org # 6.6
+Cc: stable@vger.kernel.org # Backport of the patch ("dt-bindings: usb: usb-device: relax compatible pattern to a contains") from list: https://lore.kernel.org/linux-usb/20250418-dt-binding-usb-device-compatibles-v2-1-b3029f14e800@cherry.de/
+Cc: stable@vger.kernel.org # Backport of the patch in this series fixing product ID in onboard_dev_id_table in drivers/usb/misc/onboard_usb_dev.c driver
+Signed-off-by: Lukasz Czechowski <lukasz.czechowski@thaumatec.com>
+Reviewed-by: "Rob Herring (Arm)" <robh@kernel.org>
+Link: https://lore.kernel.org/r/20250425-onboard_usb_dev-v2-2-4a76a474a010@thaumatec.com
+[taken with Greg's blessing]
+Signed-off-by: Heiko Stuebner <heiko@sntech.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ Documentation/devicetree/bindings/usb/cypress,hx3.yaml |   19 ++++++++++++++---
+ 1 file changed, 16 insertions(+), 3 deletions(-)
+
+--- a/Documentation/devicetree/bindings/usb/cypress,hx3.yaml
++++ b/Documentation/devicetree/bindings/usb/cypress,hx3.yaml
+@@ -14,9 +14,22 @@ allOf:
+ properties:
+   compatible:
+-    enum:
+-      - usb4b4,6504
+-      - usb4b4,6506
++    oneOf:
++      - enum:
++          - usb4b4,6504
++          - usb4b4,6506
++      - items:
++          - enum:
++              - usb4b4,6500
++              - usb4b4,6508
++          - const: usb4b4,6504
++      - items:
++          - enum:
++              - usb4b4,6502
++              - usb4b4,6503
++              - usb4b4,6507
++              - usb4b4,650a
++          - const: usb4b4,6506
+   reg: true
diff --git a/queue-6.12/revert-drm-amd-display-more-liberal-vmin-vmax-update-for-freesync.patch b/queue-6.12/revert-drm-amd-display-more-liberal-vmin-vmax-update-for-freesync.patch
new file mode 100644 (file)
index 0000000..03df6fc
--- /dev/null
@@ -0,0 +1,52 @@
+From 1b824eef269db44d068bbc0de74c94a8e8f9ce02 Mon Sep 17 00:00:00 2001
+From: Aurabindo Pillai <aurabindo.pillai@amd.com>
+Date: Wed, 21 May 2025 16:05:39 -0400
+Subject: Revert "drm/amd/display: more liberal vmin/vmax update for freesync"
+
+From: Aurabindo Pillai <aurabindo.pillai@amd.com>
+
+commit 1b824eef269db44d068bbc0de74c94a8e8f9ce02 upstream.
+
+This reverts commit cfb2d41831ee5647a4ae0ea7c24971a92d5dfa0d since it
+causes regressions on certain configs. Revert until the issue can be
+isolated and debugged.
+
+Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4238
+Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
+Acked-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |   16 +++++-----------
+ 1 file changed, 5 insertions(+), 11 deletions(-)
+
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+@@ -668,21 +668,15 @@ static void dm_crtc_high_irq(void *inter
+       spin_lock_irqsave(&adev_to_drm(adev)->event_lock, flags);
+       if (acrtc->dm_irq_params.stream &&
+-              acrtc->dm_irq_params.vrr_params.supported) {
+-              bool replay_en = acrtc->dm_irq_params.stream->link->replay_settings.replay_feature_enabled;
+-              bool psr_en = acrtc->dm_irq_params.stream->link->psr_settings.psr_feature_enabled;
+-              bool fs_active_var_en = acrtc->dm_irq_params.freesync_config.state == VRR_STATE_ACTIVE_VARIABLE;
+-
++          acrtc->dm_irq_params.vrr_params.supported &&
++          acrtc->dm_irq_params.freesync_config.state ==
++                  VRR_STATE_ACTIVE_VARIABLE) {
+               mod_freesync_handle_v_update(adev->dm.freesync_module,
+                                            acrtc->dm_irq_params.stream,
+                                            &acrtc->dm_irq_params.vrr_params);
+-              /* update vmin_vmax only if freesync is enabled, or only if PSR and REPLAY are disabled */
+-              if (fs_active_var_en || (!fs_active_var_en && !replay_en && !psr_en)) {
+-                      dc_stream_adjust_vmin_vmax(adev->dm.dc,
+-                                      acrtc->dm_irq_params.stream,
+-                                      &acrtc->dm_irq_params.vrr_params.adjust);
+-              }
++              dc_stream_adjust_vmin_vmax(adev->dm.dc, acrtc->dm_irq_params.stream,
++                                         &acrtc->dm_irq_params.vrr_params.adjust);
+       }
+       /*
diff --git a/queue-6.12/serial-jsm-fix-npe-during-jsm_uart_port_init.patch b/queue-6.12/serial-jsm-fix-npe-during-jsm_uart_port_init.patch
new file mode 100644 (file)
index 0000000..207b2c3
--- /dev/null
@@ -0,0 +1,59 @@
+From e3975aa899c0a3bbc10d035e699b142cd1373a71 Mon Sep 17 00:00:00 2001
+From: Dustin Lundquist <dustin@null-ptr.net>
+Date: Tue, 6 May 2025 11:18:45 -0700
+Subject: serial: jsm: fix NPE during jsm_uart_port_init
+
+From: Dustin Lundquist <dustin@null-ptr.net>
+
+commit e3975aa899c0a3bbc10d035e699b142cd1373a71 upstream.
+
+No device was set which caused serial_base_ctrl_add to crash.
+
+ BUG: kernel NULL pointer dereference, address: 0000000000000050
+ Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI
+ CPU: 16 UID: 0 PID: 368 Comm: (udev-worker) Not tainted 6.12.25-amd64 #1  Debian 6.12.25-1
+ RIP: 0010:serial_base_ctrl_add+0x96/0x120
+ Call Trace:
+  <TASK>
+  serial_core_register_port+0x1a0/0x580
+  ? __setup_irq+0x39c/0x660
+  ? __kmalloc_cache_noprof+0x111/0x310
+  jsm_uart_port_init+0xe8/0x180 [jsm]
+  jsm_probe_one+0x1f4/0x410 [jsm]
+  local_pci_probe+0x42/0x90
+  pci_device_probe+0x22f/0x270
+  really_probe+0xdb/0x340
+  ? pm_runtime_barrier+0x54/0x90
+  ? __pfx___driver_attach+0x10/0x10
+  __driver_probe_device+0x78/0x110
+  driver_probe_device+0x1f/0xa0
+  __driver_attach+0xba/0x1c0
+  bus_for_each_dev+0x8c/0xe0
+  bus_add_driver+0x112/0x1f0
+  driver_register+0x72/0xd0
+  jsm_init_module+0x36/0xff0 [jsm]
+  ? __pfx_jsm_init_module+0x10/0x10 [jsm]
+  do_one_initcall+0x58/0x310
+  do_init_module+0x60/0x230
+
+Tested with Digi Neo PCIe 8 port card.
+
+Fixes: 84a9582fd203 ("serial: core: Start managing serial controllers to enable runtime PM")
+Cc: stable <stable@kernel.org>
+Signed-off-by: Dustin Lundquist <dustin@null-ptr.net>
+Link: https://lore.kernel.org/r/3f31d4f75863614655c4673027a208be78d022ec.camel@null-ptr.net
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/tty/serial/jsm/jsm_tty.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/tty/serial/jsm/jsm_tty.c
++++ b/drivers/tty/serial/jsm/jsm_tty.c
+@@ -451,6 +451,7 @@ int jsm_uart_port_init(struct jsm_board
+               if (!brd->channels[i])
+                       continue;
++              brd->channels[i]->uart_port.dev = &brd->pci_dev->dev;
+               brd->channels[i]->uart_port.irq = brd->irq;
+               brd->channels[i]->uart_port.uartclk = 14745600;
+               brd->channels[i]->uart_port.type = PORT_JSM;
index cbb47df62bf251038c75994211a3294f907ce555..ea852029717ba5aa97c7a4a63be97a1d9f440ecf 100644 (file)
@@ -11,3 +11,14 @@ accel-ivpu-update-power-island-delays.patch
 pci-aspm-disable-l1-before-disabling-l1-pm-substates.patch
 block-fix-adding-folio-to-bio.patch
 revert-cpufreq-tegra186-share-policy-per-cluster.patch
+usb-quirks-add-no_lpm-quirk-for-sandisk-extreme-55ae.patch
+usb-storage-ignore-uas-driver-for-sandisk-3.2-gen2-storage-device.patch
+usb-serial-pl2303-add-new-chip-pl2303gc-q20-and-pl2303gt-2ab.patch
+usb-typec-ucsi-fix-clang-wsign-conversion-warning.patch
+bluetooth-hci_qca-move-the-soc-type-check-to-the-right-place.patch
+serial-jsm-fix-npe-during-jsm_uart_port_init.patch
+usb-usbtmc-fix-timeout-value-in-get_stb.patch
+thunderbolt-do-not-double-dequeue-a-configuration-request.patch
+dt-bindings-usb-cypress-hx3-add-support-for-all-variants.patch
+dt-bindings-phy-imx8mq-usb-fix-fsl-phy-tx-vboost-level-microvolt-property.patch
+revert-drm-amd-display-more-liberal-vmin-vmax-update-for-freesync.patch
diff --git a/queue-6.12/thunderbolt-do-not-double-dequeue-a-configuration-request.patch b/queue-6.12/thunderbolt-do-not-double-dequeue-a-configuration-request.patch
new file mode 100644 (file)
index 0000000..c433f12
--- /dev/null
@@ -0,0 +1,57 @@
+From 0f73628e9da1ee39daf5f188190cdbaee5e0c98c Mon Sep 17 00:00:00 2001
+From: Sergey Senozhatsky <senozhatsky@chromium.org>
+Date: Fri, 28 Mar 2025 00:03:50 +0900
+Subject: thunderbolt: Do not double dequeue a configuration request
+
+From: Sergey Senozhatsky <senozhatsky@chromium.org>
+
+commit 0f73628e9da1ee39daf5f188190cdbaee5e0c98c upstream.
+
+Some of our devices crash in tb_cfg_request_dequeue():
+
+ general protection fault, probably for non-canonical address 0xdead000000000122
+
+ CPU: 6 PID: 91007 Comm: kworker/6:2 Tainted: G U W 6.6.65
+ RIP: 0010:tb_cfg_request_dequeue+0x2d/0xa0
+ Call Trace:
+ <TASK>
+ ? tb_cfg_request_dequeue+0x2d/0xa0
+ tb_cfg_request_work+0x33/0x80
+ worker_thread+0x386/0x8f0
+ kthread+0xed/0x110
+ ret_from_fork+0x38/0x50
+ ret_from_fork_asm+0x1b/0x30
+
+The circumstances are unclear, however, the theory is that
+tb_cfg_request_work() can be scheduled twice for a request:
+first time via frame.callback from ring_work() and second
+time from tb_cfg_request().  Both times kworkers will execute
+tb_cfg_request_dequeue(), which results in double list_del()
+from the ctl->request_queue (the list poison deference hints
+at it: 0xdead000000000122).
+
+Do not dequeue requests that don't have TB_CFG_REQUEST_ACTIVE
+bit set.
+
+Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org>
+Cc: stable@vger.kernel.org
+Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/thunderbolt/ctl.c |    5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/drivers/thunderbolt/ctl.c
++++ b/drivers/thunderbolt/ctl.c
+@@ -148,6 +148,11 @@ static void tb_cfg_request_dequeue(struc
+       struct tb_ctl *ctl = req->ctl;
+       mutex_lock(&ctl->request_queue_lock);
++      if (!test_bit(TB_CFG_REQUEST_ACTIVE, &req->flags)) {
++              mutex_unlock(&ctl->request_queue_lock);
++              return;
++      }
++
+       list_del(&req->list);
+       clear_bit(TB_CFG_REQUEST_ACTIVE, &req->flags);
+       if (test_bit(TB_CFG_REQUEST_CANCELED, &req->flags))
diff --git a/queue-6.12/usb-quirks-add-no_lpm-quirk-for-sandisk-extreme-55ae.patch b/queue-6.12/usb-quirks-add-no_lpm-quirk-for-sandisk-extreme-55ae.patch
new file mode 100644 (file)
index 0000000..0eada6e
--- /dev/null
@@ -0,0 +1,44 @@
+From 19f795591947596b5b9efa86fd4b9058e45786e9 Mon Sep 17 00:00:00 2001
+From: Jiayi Li <lijiayi@kylinos.cn>
+Date: Thu, 8 May 2025 13:59:47 +0800
+Subject: usb: quirks: Add NO_LPM quirk for SanDisk Extreme 55AE
+
+From: Jiayi Li <lijiayi@kylinos.cn>
+
+commit 19f795591947596b5b9efa86fd4b9058e45786e9 upstream.
+
+This device exhibits I/O errors during file transfers due to unstable
+link power management (LPM) behavior. The kernel logs show repeated
+warm resets and eventual disconnection when LPM is enabled:
+
+[ 3467.810740] hub 2-0:1.0: state 7 ports 6 chg 0000 evt 0020
+[ 3467.810740] usb usb2-port5: do warm reset
+[ 3467.866444] usb usb2-port5: not warm reset yet, waiting 50ms
+[ 3467.907407] sd 0:0:0:0: [sda] tag#12 sense submit err -19
+[ 3467.994423] usb usb2-port5: status 02c0, change 0001, 10.0 Gb/s
+[ 3467.994453] usb 2-5: USB disconnect, device number 4
+
+The error -19 (ENODEV) occurs when the device disappears during write
+operations. Adding USB_QUIRK_NO_LPM disables link power management
+for this specific device, resolving the stability issues.
+
+Signed-off-by: Jiayi Li <lijiayi@kylinos.cn>
+Cc: stable <stable@kernel.org>
+Link: https://lore.kernel.org/r/20250508055947.764538-1-lijiayi@kylinos.cn
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/usb/core/quirks.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/usb/core/quirks.c
++++ b/drivers/usb/core/quirks.c
+@@ -372,6 +372,9 @@ static const struct usb_device_id usb_qu
+       /* SanDisk Corp. SanDisk 3.2Gen1 */
+       { USB_DEVICE(0x0781, 0x55a3), .driver_info = USB_QUIRK_DELAY_INIT },
++      /* SanDisk Extreme 55AE */
++      { USB_DEVICE(0x0781, 0x55ae), .driver_info = USB_QUIRK_NO_LPM },
++
+       /* Realforce 87U Keyboard */
+       { USB_DEVICE(0x0853, 0x011b), .driver_info = USB_QUIRK_NO_LPM },
diff --git a/queue-6.12/usb-serial-pl2303-add-new-chip-pl2303gc-q20-and-pl2303gt-2ab.patch b/queue-6.12/usb-serial-pl2303-add-new-chip-pl2303gc-q20-and-pl2303gt-2ab.patch
new file mode 100644 (file)
index 0000000..edb5a7e
--- /dev/null
@@ -0,0 +1,31 @@
+From d3a889482bd5abf2bbdc1ec3d2d49575aa160c9c Mon Sep 17 00:00:00 2001
+From: Charles Yeh <charlesyeh522@gmail.com>
+Date: Wed, 21 May 2025 21:23:54 +0800
+Subject: USB: serial: pl2303: add new chip PL2303GC-Q20 and PL2303GT-2AB
+
+From: Charles Yeh <charlesyeh522@gmail.com>
+
+commit d3a889482bd5abf2bbdc1ec3d2d49575aa160c9c upstream.
+
+Add new bcd (0x905) to support PL2303GT-2AB (TYPE_HXN).
+Add new bcd (0x1005) to support PL2303GC-Q20 (TYPE_HXN).
+
+Signed-off-by: Charles Yeh <charlesyeh522@gmail.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/usb/serial/pl2303.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/usb/serial/pl2303.c
++++ b/drivers/usb/serial/pl2303.c
+@@ -457,6 +457,8 @@ static int pl2303_detect_type(struct usb
+               case 0x605:
+               case 0x700:     /* GR */
+               case 0x705:
++              case 0x905:     /* GT-2AB */
++              case 0x1005:    /* GC-Q20 */
+                       return TYPE_HXN;
+               }
+               break;
diff --git a/queue-6.12/usb-storage-ignore-uas-driver-for-sandisk-3.2-gen2-storage-device.patch b/queue-6.12/usb-storage-ignore-uas-driver-for-sandisk-3.2-gen2-storage-device.patch
new file mode 100644 (file)
index 0000000..651bc43
--- /dev/null
@@ -0,0 +1,238 @@
+From a541acceedf4f639f928f41fbb676b75946dc295 Mon Sep 17 00:00:00 2001
+From: Hongyu Xie <xiehongyu1@kylinos.cn>
+Date: Mon, 19 May 2025 10:33:28 +0800
+Subject: usb: storage: Ignore UAS driver for SanDisk 3.2 Gen2 storage device
+
+From: Hongyu Xie <xiehongyu1@kylinos.cn>
+
+commit a541acceedf4f639f928f41fbb676b75946dc295 upstream.
+
+SanDisk 3.2 Gen2 storage device(0781:55e8) doesn't work well with UAS.
+Log says,
+[    6.507865][ 3] [  T159] usb 2-1.4: new SuperSpeed Gen 1 USB device number 4 using xhci_hcd
+[    6.540314][ 3] [  T159] usb 2-1.4: New USB device found, idVendor=0781, idProduct=55e8, bcdDevice= 0.01
+[    6.576304][ 3] [  T159] usb 2-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
+[    6.584727][ 3] [  T159] usb 2-1.4: Product: SanDisk 3.2 Gen2
+[    6.590459][ 3] [  T159] usb 2-1.4: Manufacturer: SanDisk
+[    6.595845][ 3] [  T159] usb 2-1.4: SerialNumber: 03021707022525140940
+[    7.230852][ 0] [  T265] usbcore: registered new interface driver usb-storage
+[    7.251247][ 0] [  T265] scsi host3: uas
+[    7.255280][ 0] [  T265] usbcore: registered new interface driver uas
+[    7.270498][ 1] [  T192] scsi 3:0:0:0: Direct-Access     SanDisk  Extreme Pro DDE1 0110 PQ: 0 ANSI: 6
+[    7.299588][ 3] [  T192] scsi 3:0:0:1: Enclosure         SanDisk  SES Device       0110 PQ: 0 ANSI: 6
+[    7.321681][ 3] [  T192] sd 3:0:0:0: Attached scsi generic sg1 type 0
+[    7.328185][ 3] [  T192] scsi 3:0:0:1: Attached scsi generic sg2 type 13
+[    7.328804][ 0] [  T191] sd 3:0:0:0: [sda] 976773168 512-byte logical blocks: (500 GB/466 GiB)
+[    7.343486][ 0] [  T191] sd 3:0:0:0: [sda] 4096-byte physical blocks
+[    7.364611][ 0] [  T191] sd 3:0:0:0: [sda] Write Protect is off
+[    7.370524][ 0] [  T191] sd 3:0:0:0: [sda] Mode Sense: 3d 00 10 00
+[    7.390655][ 0] [  T191] sd 3:0:0:0: [sda] Write cache: enabled, read cache: enabled, supports DPO and FUA
+[    7.401363][ 0] [  T191] sd 3:0:0:0: [sda] Optimal transfer size 1048576 bytes
+[    7.436010][ 0] [  T191]  sda: sda1
+[    7.450850][ 0] [  T191] sd 3:0:0:0: [sda] Attached SCSI disk
+[    7.470218][ 4] [  T262] scsi 3:0:0:1: Failed to get diagnostic page 0x1
+[    7.474869][ 0] [    C0] sd 3:0:0:0: [sda] tag#0 data cmplt err -75 uas-tag 2 inflight: CMD
+[    7.476911][ 4] [  T262] scsi 3:0:0:1: Failed to bind enclosure -19
+[    7.485330][ 0] [    C0] sd 3:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 00 00 00 28 00 00 10 00
+[    7.491593][ 4] [  T262] ses 3:0:0:1: Attached Enclosure device
+[   38.066980][ 4] [  T192] sd 3:0:0:0: [sda] tag#4 uas_eh_abort_handler 0 uas-tag 5 inflight: CMD IN
+[   38.076012][ 4] [  T192] sd 3:0:0:0: [sda] tag#4 CDB: Read(10) 28 00 00 00 01 08 00 00 f8 00
+[   38.086485][ 4] [  T192] sd 3:0:0:0: [sda] tag#3 uas_eh_abort_handler 0 uas-tag 1 inflight: CMD IN
+[   38.095515][ 4] [  T192] sd 3:0:0:0: [sda] tag#3 CDB: Read(10) 28 00 00 00 00 10 00 00 08 00
+[   38.104122][ 4] [  T192] sd 3:0:0:0: [sda] tag#2 uas_eh_abort_handler 0 uas-tag 4 inflight: CMD IN
+[   38.113152][ 4] [  T192] sd 3:0:0:0: [sda] tag#2 CDB: Read(10) 28 00 00 00 00 88 00 00 78 00
+[   38.121761][ 4] [  T192] sd 3:0:0:0: [sda] tag#1 uas_eh_abort_handler 0 uas-tag 3 inflight: CMD IN
+[   38.130791][ 4] [  T192] sd 3:0:0:0: [sda] tag#1 CDB: Read(10) 28 00 00 00 00 48 00 00 30 00
+[   38.139401][ 4] [  T192] sd 3:0:0:0: [sda] tag#0 uas_eh_abort_handler 0 uas-tag 2 inflight: CMD
+[   38.148170][ 4] [  T192] sd 3:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 00 00 00 28 00 00 10 00
+[   38.178980][ 2] [  T304] scsi host3: uas_eh_device_reset_handler start
+[   38.901540][ 2] [  T304] usb 2-1.4: reset SuperSpeed Gen 1 USB device number 4 using xhci_hcd
+[   38.936791][ 2] [  T304] scsi host3: uas_eh_device_reset_handler success
+
+Device decriptor is below,
+Bus 002 Device 006: ID 0781:55e8 SanDisk Corp. SanDisk 3.2 Gen2
+Device Descriptor:
+  bLength                18
+  bDescriptorType         1
+  bcdUSB               3.20
+  bDeviceClass            0
+  bDeviceSubClass         0
+  bDeviceProtocol         0
+  bMaxPacketSize0         9
+  idVendor           0x0781 SanDisk Corp.
+  idProduct          0x55e8
+  bcdDevice            0.01
+  iManufacturer           1 SanDisk
+  iProduct                2 SanDisk 3.2 Gen2
+  iSerial                 3 03021707022525140940
+  bNumConfigurations      1
+  Configuration Descriptor:
+    bLength                 9
+    bDescriptorType         2
+    wTotalLength       0x0079
+    bNumInterfaces          1
+    bConfigurationValue     1
+    iConfiguration          0
+    bmAttributes         0x80
+      (Bus Powered)
+    MaxPower              896mA
+    Interface Descriptor:
+      bLength                 9
+      bDescriptorType         4
+      bInterfaceNumber        0
+      bAlternateSetting       0
+      bNumEndpoints           2
+      bInterfaceClass         8 Mass Storage
+      bInterfaceSubClass      6 SCSI
+      bInterfaceProtocol     80 Bulk-Only
+      iInterface              0
+      Endpoint Descriptor:
+        bLength                 7
+        bDescriptorType         5
+        bEndpointAddress     0x82  EP 2 IN
+        bmAttributes            2
+          Transfer Type            Bulk
+          Synch Type               None
+          Usage Type               Data
+        wMaxPacketSize     0x0400  1x 1024 bytes
+        bInterval               0
+        bMaxBurst              15
+      Endpoint Descriptor:
+        bLength                 7
+        bDescriptorType         5
+        bEndpointAddress     0x01  EP 1 OUT
+        bmAttributes            2
+          Transfer Type            Bulk
+          Synch Type               None
+          Usage Type               Data
+        wMaxPacketSize     0x0400  1x 1024 bytes
+        bInterval               0
+        bMaxBurst              15
+    Interface Descriptor:
+      bLength                 9
+      bDescriptorType         4
+      bInterfaceNumber        0
+      bAlternateSetting       1
+      bNumEndpoints           4
+      bInterfaceClass         8 Mass Storage
+      bInterfaceSubClass      6 SCSI
+      bInterfaceProtocol     98
+      iInterface              0
+      Endpoint Descriptor:
+        bLength                 7
+        bDescriptorType         5
+        bEndpointAddress     0x01  EP 1 OUT
+        bmAttributes            2
+          Transfer Type            Bulk
+          Synch Type               None
+          Usage Type               Data
+        wMaxPacketSize     0x0400  1x 1024 bytes
+        bInterval               0
+        bMaxBurst               0
+        Command pipe (0x01)
+      Endpoint Descriptor:
+        bLength                 7
+        bDescriptorType         5
+        bEndpointAddress     0x84  EP 4 IN
+        bmAttributes            2
+          Transfer Type            Bulk
+          Synch Type               None
+          Usage Type               Data
+        wMaxPacketSize     0x0400  1x 1024 bytes
+        bInterval               0
+        bMaxBurst              15
+        MaxStreams             32
+        Status pipe (0x02)
+      Endpoint Descriptor:
+        bLength                 7
+        bDescriptorType         5
+        bEndpointAddress     0x82  EP 2 IN
+        bmAttributes            2
+          Transfer Type            Bulk
+          Synch Type               None
+          Usage Type               Data
+        wMaxPacketSize     0x0400  1x 1024 bytes
+        bInterval               0
+        bMaxBurst              15
+        MaxStreams             32
+        Data-in pipe (0x03)
+      Endpoint Descriptor:
+        bLength                 7
+        bDescriptorType         5
+        bEndpointAddress     0x03  EP 3 OUT
+        bmAttributes            2
+          Transfer Type            Bulk
+          Synch Type               None
+          Usage Type               Data
+        wMaxPacketSize     0x0400  1x 1024 bytes
+        bInterval               0
+        bMaxBurst              15
+        MaxStreams             32
+        Data-out pipe (0x04)
+Binary Object Store Descriptor:
+  bLength                 5
+  bDescriptorType        15
+  wTotalLength       0x002a
+  bNumDeviceCaps          3
+  USB 2.0 Extension Device Capability:
+    bLength                 7
+    bDescriptorType        16
+    bDevCapabilityType      2
+    bmAttributes   0x0000f41e
+      BESL Link Power Management (LPM) Supported
+    BESL value     1024 us
+    Deep BESL value    61440 us
+  SuperSpeed USB Device Capability:
+    bLength                10
+    bDescriptorType        16
+    bDevCapabilityType      3
+    bmAttributes         0x00
+    wSpeedsSupported   0x000e
+      Device can operate at Full Speed (12Mbps)
+      Device can operate at High Speed (480Mbps)
+      Device can operate at SuperSpeed (5Gbps)
+    bFunctionalitySupport   1
+      Lowest fully-functional device speed is Full Speed (12Mbps)
+    bU1DevExitLat          10 micro seconds
+    bU2DevExitLat        2047 micro seconds
+  SuperSpeedPlus USB Device Capability:
+    bLength                20
+    bDescriptorType        16
+    bDevCapabilityType     10
+    bmAttributes         0x00000001
+      Sublink Speed Attribute count 1
+      Sublink Speed ID count 0
+    wFunctionalitySupport   0x1100
+    bmSublinkSpeedAttr[0]   0x000a4030
+      Speed Attribute ID: 0 10Gb/s Symmetric RX SuperSpeedPlus
+    bmSublinkSpeedAttr[1]   0x000a40b0
+      Speed Attribute ID: 0 10Gb/s Symmetric TX SuperSpeedPlus
+Device Status:     0x0000
+  (Bus Powered)
+
+So ignore UAS driver for this device.
+
+Signed-off-by: Hongyu Xie <xiehongyu1@kylinos.cn>
+Cc: stable <stable@kernel.org>
+Link: https://lore.kernel.org/r/20250519023328.1498856-1-xiehongyu1@kylinos.cn
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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
+@@ -52,6 +52,13 @@ UNUSUAL_DEV(0x059f, 0x1061, 0x0000, 0x99
+               USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+               US_FL_NO_REPORT_OPCODES | US_FL_NO_SAME),
++/* Reported-by: Zhihong Zhou <zhouzhihong@greatwall.com.cn> */
++UNUSUAL_DEV(0x0781, 0x55e8, 0x0000, 0x9999,
++              "SanDisk",
++              "",
++              USB_SC_DEVICE, USB_PR_DEVICE, NULL,
++              US_FL_IGNORE_UAS),
++
+ /* Reported-by: Hongling Zeng <zenghongling@kylinos.cn> */
+ UNUSUAL_DEV(0x090c, 0x2000, 0x0000, 0x9999,
+               "Hiksemi",
diff --git a/queue-6.12/usb-typec-ucsi-fix-clang-wsign-conversion-warning.patch b/queue-6.12/usb-typec-ucsi-fix-clang-wsign-conversion-warning.patch
new file mode 100644 (file)
index 0000000..984c19b
--- /dev/null
@@ -0,0 +1,50 @@
+From f4239ace2dd8606f6824757f192965a95746da05 Mon Sep 17 00:00:00 2001
+From: Qasim Ijaz <qasdev00@gmail.com>
+Date: Tue, 22 Apr 2025 14:47:17 +0100
+Subject: usb: typec: ucsi: fix Clang -Wsign-conversion warning
+
+From: Qasim Ijaz <qasdev00@gmail.com>
+
+commit f4239ace2dd8606f6824757f192965a95746da05 upstream.
+
+debugfs.c emits the following warnings when compiling with the -Wsign-conversion flag with clang 15:
+
+drivers/usb/typec/ucsi/debugfs.c:58:27: warning: implicit conversion changes signedness: 'int' to 'u32' (aka 'unsigned int') [-Wsign-conversion]
+                ucsi->debugfs->status = ret;
+                                      ~ ^~~
+drivers/usb/typec/ucsi/debugfs.c:71:25: warning: implicit conversion changes signedness: 'u32' (aka 'unsigned int') to 'int' [-Wsign-conversion]
+                return ucsi->debugfs->status;
+                ~~~~~~ ~~~~~~~~~~~~~~~^~~~~~
+
+During ucsi_cmd() we see:
+
+       if (ret < 0) {
+               ucsi->debugfs->status = ret;
+               return ret;
+       }
+
+But "status" is u32 meaning unsigned wrap-around occurs when assigning a value which is < 0 to it, this obscures the real status.
+
+To fix this make the "status" of type int since ret is also of type int.
+
+Fixes: df0383ffad64 ("usb: typec: ucsi: Add debugfs for ucsi commands")
+Cc: stable@vger.kernel.org
+Signed-off-by: Qasim Ijaz <qasdev00@gmail.com>
+Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
+Link: https://lore.kernel.org/r/20250422134717.66218-1-qasdev00@gmail.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/usb/typec/ucsi/ucsi.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/typec/ucsi/ucsi.h
++++ b/drivers/usb/typec/ucsi/ucsi.h
+@@ -367,7 +367,7 @@ struct ucsi_debugfs_entry {
+               u64 low;
+               u64 high;
+       } response;
+-      u32 status;
++      int status;
+       struct dentry *dentry;
+ };
diff --git a/queue-6.12/usb-usbtmc-fix-timeout-value-in-get_stb.patch b/queue-6.12/usb-usbtmc-fix-timeout-value-in-get_stb.patch
new file mode 100644 (file)
index 0000000..a19b5f6
--- /dev/null
@@ -0,0 +1,47 @@
+From 342e4955a1f1ce28c70a589999b76365082dbf10 Mon Sep 17 00:00:00 2001
+From: Dave Penkler <dpenkler@gmail.com>
+Date: Wed, 21 May 2025 14:16:56 +0200
+Subject: usb: usbtmc: Fix timeout value in get_stb
+
+From: Dave Penkler <dpenkler@gmail.com>
+
+commit 342e4955a1f1ce28c70a589999b76365082dbf10 upstream.
+
+wait_event_interruptible_timeout requires a timeout argument
+in units of jiffies. It was being called in usbtmc_get_stb
+with the usb timeout value which is in units of milliseconds.
+
+Pass the timeout argument converted to jiffies.
+
+Fixes: 048c6d88a021 ("usb: usbtmc: Add ioctls to set/get usb timeout")
+Cc: stable@vger.kernel.org
+Signed-off-by: Dave Penkler <dpenkler@gmail.com>
+Link: https://lore.kernel.org/r/20250521121656.18174-4-dpenkler@gmail.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/usb/class/usbtmc.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/usb/class/usbtmc.c
++++ b/drivers/usb/class/usbtmc.c
+@@ -483,6 +483,7 @@ static int usbtmc_get_stb(struct usbtmc_
+       u8 tag;
+       int rv;
+       long wait_rv;
++      unsigned long expire;
+       dev_dbg(dev, "Enter ioctl_read_stb iin_ep_present: %d\n",
+               data->iin_ep_present);
+@@ -512,10 +513,11 @@ static int usbtmc_get_stb(struct usbtmc_
+       }
+       if (data->iin_ep_present) {
++              expire = msecs_to_jiffies(file_data->timeout);
+               wait_rv = wait_event_interruptible_timeout(
+                       data->waitq,
+                       atomic_read(&data->iin_data_valid) != 0,
+-                      file_data->timeout);
++                      expire);
+               if (wait_rv < 0) {
+                       dev_dbg(dev, "wait interrupted %ld\n", wait_rv);
+                       rv = wait_rv;