From 001a07d3212f1914d19bc285d35b112eabf4e199 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 15 Jul 2025 14:19:23 +0200 Subject: [PATCH] drop some usb patches from 5.4 Not in newer ones, and the backport chain looks "odd" to me. --- queue-5.4/series | 7 - ...t-suspend-on-soft-disconnect-failure.patch | 96 -------------- ...usb-dwc3-clean-up-probe-declarations.patch | 42 ------ ...tcaps-related-macros-to-respective-h.patch | 104 --------------- ...uirk-for-data-loss-in-isoc-transfers.patch | 122 ------------------ ...n-the-usb-controller-1022-43f7-by-de.patch | 46 ------- ...-queued-requests-before-stopping-dbc.patch | 51 -------- ...eam-for-xhc-controller-with-xhci_bro.patch | 39 ------ 8 files changed, 507 deletions(-) delete mode 100644 queue-5.4/usb-dwc3-abort-suspend-on-soft-disconnect-failure.patch delete mode 100644 queue-5.4/usb-dwc3-clean-up-probe-declarations.patch delete mode 100644 queue-5.4/usb-xhci-move-extcaps-related-macros-to-respective-h.patch delete mode 100644 queue-5.4/usb-xhci-quirk-for-data-loss-in-isoc-transfers.patch delete mode 100644 queue-5.4/xhci-allow-rpm-on-the-usb-controller-1022-43f7-by-de.patch delete mode 100644 queue-5.4/xhci-dbc-flush-queued-requests-before-stopping-dbc.patch delete mode 100644 queue-5.4/xhci-disable-stream-for-xhc-controller-with-xhci_bro.patch diff --git a/queue-5.4/series b/queue-5.4/series index a940a083f1..3e6004344a 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -127,16 +127,9 @@ netlink-fix-rmem-check-in-netlink_broadcast_deliver.patch rdma-mlx5-fix-vport-loopback-for-mpv-device.patch flexfiles-pnfs-update-stats-on-nfs4err_delay-for-v4..patch nfsv4-flexfiles-fix-handling-of-nfs-level-errors-in-.patch -xhci-allow-rpm-on-the-usb-controller-1022-43f7-by-de.patch -usb-xhci-quirk-for-data-loss-in-isoc-transfers.patch -xhci-dbc-flush-queued-requests-before-stopping-dbc.patch -xhci-disable-stream-for-xhc-controller-with-xhci_bro.patch input-xpad-add-support-for-amazon-game-controller.patch input-xpad-add-vid-for-turtle-beach-controllers.patch input-xpad-support-acer-ngr-200-controller.patch -usb-dwc3-clean-up-probe-declarations.patch -usb-xhci-move-extcaps-related-macros-to-respective-h.patch -usb-dwc3-abort-suspend-on-soft-disconnect-failure.patch dma-buf-fix-timeout-handling-in-dma_resv_wait_timeou.patch wifi-zd1211rw-fix-potential-null-pointer-dereference.patch md-raid1-fix-stack-memory-use-after-return-in-raid1_.patch diff --git a/queue-5.4/usb-dwc3-abort-suspend-on-soft-disconnect-failure.patch b/queue-5.4/usb-dwc3-abort-suspend-on-soft-disconnect-failure.patch deleted file mode 100644 index 050e4ded3a..0000000000 --- a/queue-5.4/usb-dwc3-abort-suspend-on-soft-disconnect-failure.patch +++ /dev/null @@ -1,96 +0,0 @@ -From ee2ad558af36166f1920ac2ce9762145b4ccbfde Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 28 May 2025 18:03:11 +0800 -Subject: usb: dwc3: Abort suspend on soft disconnect failure - -From: Kuen-Han Tsai - -[ Upstream commit 630a1dec3b0eba2a695b9063f1c205d585cbfec9 ] - -When dwc3_gadget_soft_disconnect() fails, dwc3_suspend_common() keeps -going with the suspend, resulting in a period where the power domain is -off, but the gadget driver remains connected. Within this time frame, -invoking vbus_event_work() will cause an error as it attempts to access -DWC3 registers for endpoint disabling after the power domain has been -completely shut down. - -Abort the suspend sequence when dwc3_gadget_suspend() cannot halt the -controller and proceeds with a soft connect. - -Fixes: 9f8a67b65a49 ("usb: dwc3: gadget: fix gadget suspend/resume") -Cc: stable -Acked-by: Thinh Nguyen -Signed-off-by: Kuen-Han Tsai -Link: https://lore.kernel.org/r/20250528100315.2162699-1-khtsai@google.com -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Sasha Levin ---- - drivers/usb/dwc3/core.c | 9 +++++++-- - drivers/usb/dwc3/gadget.c | 15 ++++++++++++++- - 2 files changed, 21 insertions(+), 3 deletions(-) - -diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index 36499f7054a28..71efeb4f3a774 100644 ---- a/drivers/usb/dwc3/core.c -+++ b/drivers/usb/dwc3/core.c -@@ -1642,12 +1642,15 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) - { - unsigned long flags; - u32 reg; -+ int ret; - - switch (dwc->current_dr_role) { - case DWC3_GCTL_PRTCAP_DEVICE: - spin_lock_irqsave(&dwc->lock, flags); -- dwc3_gadget_suspend(dwc); -+ ret = dwc3_gadget_suspend(dwc); - spin_unlock_irqrestore(&dwc->lock, flags); -+ if (ret) -+ return ret; - synchronize_irq(dwc->irq_gadget); - dwc3_core_exit(dwc); - break; -@@ -1679,8 +1682,10 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) - - if (dwc->current_otg_role == DWC3_OTG_ROLE_DEVICE) { - spin_lock_irqsave(&dwc->lock, flags); -- dwc3_gadget_suspend(dwc); -+ ret = dwc3_gadget_suspend(dwc); - spin_unlock_irqrestore(&dwc->lock, flags); -+ if (ret) -+ return ret; - synchronize_irq(dwc->irq_gadget); - } - -diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c -index 76316205483b9..a1da478f29724 100644 ---- a/drivers/usb/dwc3/gadget.c -+++ b/drivers/usb/dwc3/gadget.c -@@ -3838,10 +3838,23 @@ void dwc3_gadget_exit(struct dwc3 *dwc) - - int dwc3_gadget_suspend(struct dwc3 *dwc) - { -+ int ret; -+ - if (!dwc->gadget_driver) - return 0; - -- dwc3_gadget_run_stop(dwc, false, false); -+ ret = dwc3_gadget_run_stop(dwc, false, false); -+ if (ret) { -+ /* -+ * Attempt to reset the controller's state. Likely no -+ * communication can be established until the host -+ * performs a port reset. -+ */ -+ if (dwc->softconnect) -+ dwc3_gadget_run_stop(dwc, true, false); -+ return -EAGAIN; -+ } -+ - dwc3_disconnect_gadget(dwc); - __dwc3_gadget_stop(dwc); - --- -2.39.5 - diff --git a/queue-5.4/usb-dwc3-clean-up-probe-declarations.patch b/queue-5.4/usb-dwc3-clean-up-probe-declarations.patch deleted file mode 100644 index 03c7feed09..0000000000 --- a/queue-5.4/usb-dwc3-clean-up-probe-declarations.patch +++ /dev/null @@ -1,42 +0,0 @@ -From f0782cffd61c6756da33dd9ba69e6d7e38da492e Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 4 Apr 2023 09:25:24 +0200 -Subject: USB: dwc3: clean up probe declarations - -From: Johan Hovold - -[ Upstream commit 9a4d7dd1990383df8ffa09d6879cecb0534405e1 ] - -Clean up the probe variable declarations by removing the stray newlines. - -Acked-by: Thinh Nguyen -Signed-off-by: Johan Hovold -Link: https://lore.kernel.org/r/20230404072524.19014-12-johan+linaro@kernel.org -Signed-off-by: Greg Kroah-Hartman -Stable-dep-of: 630a1dec3b0e ("usb: dwc3: Abort suspend on soft disconnect failure") -Signed-off-by: Sasha Levin ---- - drivers/usb/dwc3/core.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index 1a420c00d6ca1..36499f7054a28 100644 ---- a/drivers/usb/dwc3/core.c -+++ b/drivers/usb/dwc3/core.c -@@ -1430,12 +1430,10 @@ static int dwc3_probe(struct platform_device *pdev) - { - struct device *dev = &pdev->dev; - struct resource *res, dwc_res; -+ void __iomem *regs; - struct dwc3 *dwc; -- - int ret; - -- void __iomem *regs; -- - dwc = devm_kzalloc(dev, sizeof(*dwc), GFP_KERNEL); - if (!dwc) - return -ENOMEM; --- -2.39.5 - diff --git a/queue-5.4/usb-xhci-move-extcaps-related-macros-to-respective-h.patch b/queue-5.4/usb-xhci-move-extcaps-related-macros-to-respective-h.patch deleted file mode 100644 index 46aa250c30..0000000000 --- a/queue-5.4/usb-xhci-move-extcaps-related-macros-to-respective-h.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 5cec18ba66257c64a30383007a7f9df565649dd8 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Mon, 28 Aug 2023 19:00:23 +0530 -Subject: usb: xhci: Move extcaps related macros to respective header file - -From: Krishna Kurapati - -[ Upstream commit 60958b3abacc4eeea21236aa61bfacd1c3520168 ] - -DWC3 driver needs access to XHCI Extended Capabilities registers to -read number of usb2 ports and usb3 ports present on multiport controller. -Since the extcaps header is sufficient to parse this info, move port_count -related macros and structure from xhci.h to xhci-ext-caps.h. - -Signed-off-by: Krishna Kurapati -Link: https://lore.kernel.org/r/20230828133033.11988-4-quic_kriskura@quicinc.com -Acked-by: Mathias Nyman -Signed-off-by: Greg Kroah-Hartman -Stable-dep-of: 630a1dec3b0e ("usb: dwc3: Abort suspend on soft disconnect failure") -Signed-off-by: Sasha Levin ---- - drivers/usb/host/xhci-ext-caps.h | 27 +++++++++++++++++++++++++++ - drivers/usb/host/xhci.h | 27 --------------------------- - 2 files changed, 27 insertions(+), 27 deletions(-) - -diff --git a/drivers/usb/host/xhci-ext-caps.h b/drivers/usb/host/xhci-ext-caps.h -index 2208fa6c74109..615b4562184bb 100644 ---- a/drivers/usb/host/xhci-ext-caps.h -+++ b/drivers/usb/host/xhci-ext-caps.h -@@ -79,6 +79,33 @@ - /* true: Controller Not Ready to accept doorbell or op reg writes after reset */ - #define XHCI_STS_CNR (1 << 11) - -+/** -+ * struct xhci_protocol_caps -+ * @revision: major revision, minor revision, capability ID, -+ * and next capability pointer. -+ * @name_string: Four ASCII characters to say which spec this xHC -+ * follows, typically "USB ". -+ * @port_info: Port offset, count, and protocol-defined information. -+ */ -+struct xhci_protocol_caps { -+ u32 revision; -+ u32 name_string; -+ u32 port_info; -+}; -+ -+#define XHCI_EXT_PORT_MAJOR(x) (((x) >> 24) & 0xff) -+#define XHCI_EXT_PORT_MINOR(x) (((x) >> 16) & 0xff) -+#define XHCI_EXT_PORT_PSIC(x) (((x) >> 28) & 0x0f) -+#define XHCI_EXT_PORT_OFF(x) ((x) & 0xff) -+#define XHCI_EXT_PORT_COUNT(x) (((x) >> 8) & 0xff) -+ -+#define XHCI_EXT_PORT_PSIV(x) (((x) >> 0) & 0x0f) -+#define XHCI_EXT_PORT_PSIE(x) (((x) >> 4) & 0x03) -+#define XHCI_EXT_PORT_PLT(x) (((x) >> 6) & 0x03) -+#define XHCI_EXT_PORT_PFD(x) (((x) >> 8) & 0x01) -+#define XHCI_EXT_PORT_LP(x) (((x) >> 14) & 0x03) -+#define XHCI_EXT_PORT_PSIM(x) (((x) >> 16) & 0xffff) -+ - #include - - /** -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index 748a823b23dbb..3a2ff1ff32676 100644 ---- a/drivers/usb/host/xhci.h -+++ b/drivers/usb/host/xhci.h -@@ -555,33 +555,6 @@ struct xhci_doorbell_array { - #define DB_VALUE(ep, stream) ((((ep) + 1) & 0xff) | ((stream) << 16)) - #define DB_VALUE_HOST 0x00000000 - --/** -- * struct xhci_protocol_caps -- * @revision: major revision, minor revision, capability ID, -- * and next capability pointer. -- * @name_string: Four ASCII characters to say which spec this xHC -- * follows, typically "USB ". -- * @port_info: Port offset, count, and protocol-defined information. -- */ --struct xhci_protocol_caps { -- u32 revision; -- u32 name_string; -- u32 port_info; --}; -- --#define XHCI_EXT_PORT_MAJOR(x) (((x) >> 24) & 0xff) --#define XHCI_EXT_PORT_MINOR(x) (((x) >> 16) & 0xff) --#define XHCI_EXT_PORT_PSIC(x) (((x) >> 28) & 0x0f) --#define XHCI_EXT_PORT_OFF(x) ((x) & 0xff) --#define XHCI_EXT_PORT_COUNT(x) (((x) >> 8) & 0xff) -- --#define XHCI_EXT_PORT_PSIV(x) (((x) >> 0) & 0x0f) --#define XHCI_EXT_PORT_PSIE(x) (((x) >> 4) & 0x03) --#define XHCI_EXT_PORT_PLT(x) (((x) >> 6) & 0x03) --#define XHCI_EXT_PORT_PFD(x) (((x) >> 8) & 0x01) --#define XHCI_EXT_PORT_LP(x) (((x) >> 14) & 0x03) --#define XHCI_EXT_PORT_PSIM(x) (((x) >> 16) & 0xffff) -- - #define PLT_MASK (0x03 << 6) - #define PLT_SYM (0x00 << 6) - #define PLT_ASYM_RX (0x02 << 6) --- -2.39.5 - diff --git a/queue-5.4/usb-xhci-quirk-for-data-loss-in-isoc-transfers.patch b/queue-5.4/usb-xhci-quirk-for-data-loss-in-isoc-transfers.patch deleted file mode 100644 index 78a04d1ba8..0000000000 --- a/queue-5.4/usb-xhci-quirk-for-data-loss-in-isoc-transfers.patch +++ /dev/null @@ -1,122 +0,0 @@ -From 1656177ef51979f78eb53c9abe7ccfe15f456ad7 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Sat, 12 Jul 2025 05:34:20 -0400 -Subject: usb: xhci: quirk for data loss in ISOC transfers - -From: Raju Rangoju - -[ Upstream commit cbc889ab0122366f6cdbe3c28d477c683ebcebc2 ] - -During the High-Speed Isochronous Audio transfers, xHCI -controller on certain AMD platforms experiences momentary data -loss. This results in Missed Service Errors (MSE) being -generated by the xHCI. - -The root cause of the MSE is attributed to the ISOC OUT endpoint -being omitted from scheduling. This can happen when an IN -endpoint with a 64ms service interval either is pre-scheduled -prior to the ISOC OUT endpoint or the interval of the ISOC OUT -endpoint is shorter than that of the IN endpoint. Consequently, -the OUT service is neglected when an IN endpoint with a service -interval exceeding 32ms is scheduled concurrently (every 64ms in -this scenario). - -This issue is particularly seen on certain older AMD platforms. -To mitigate this problem, it is recommended to adjust the service -interval of the IN endpoint to not exceed 32ms (interval 8). This -adjustment ensures that the OUT endpoint will not be bypassed, -even if a smaller interval value is utilized. - -Cc: stable -Signed-off-by: Raju Rangoju -Signed-off-by: Mathias Nyman -Link: https://lore.kernel.org/r/20250627144127.3889714-2-mathias.nyman@linux.intel.com -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Sasha Levin ---- - drivers/usb/host/xhci-mem.c | 4 ++++ - drivers/usb/host/xhci-pci.c | 26 ++++++++++++++++++++++++++ - drivers/usb/host/xhci.h | 1 + - 3 files changed, 31 insertions(+) - -diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c -index 610190bf62da4..ac7684c74df7a 100644 ---- a/drivers/usb/host/xhci-mem.c -+++ b/drivers/usb/host/xhci-mem.c -@@ -1467,6 +1467,10 @@ int xhci_endpoint_init(struct xhci_hcd *xhci, - /* Periodic endpoint bInterval limit quirk */ - if (usb_endpoint_xfer_int(&ep->desc) || - usb_endpoint_xfer_isoc(&ep->desc)) { -+ if ((xhci->quirks & XHCI_LIMIT_ENDPOINT_INTERVAL_9) && -+ interval >= 9) { -+ interval = 8; -+ } - if ((xhci->quirks & XHCI_LIMIT_ENDPOINT_INTERVAL_7) && - udev->speed >= USB_SPEED_HIGH && - interval >= 7) { -diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 64a46db07af86..5ff03b0ce2d02 100644 ---- a/drivers/usb/host/xhci-pci.c -+++ b/drivers/usb/host/xhci-pci.c -@@ -56,6 +56,15 @@ - #define PCI_DEVICE_ID_INTEL_ICE_LAKE_XHCI 0x8a13 - #define PCI_DEVICE_ID_INTEL_CML_XHCI 0xa3af - -+#define PCI_DEVICE_ID_AMD_ARIEL_TYPEC_XHCI 0x13ed -+#define PCI_DEVICE_ID_AMD_ARIEL_TYPEA_XHCI 0x13ee -+#define PCI_DEVICE_ID_AMD_STARSHIP_XHCI 0x148c -+#define PCI_DEVICE_ID_AMD_FIREFLIGHT_15D4_XHCI 0x15d4 -+#define PCI_DEVICE_ID_AMD_FIREFLIGHT_15D5_XHCI 0x15d5 -+#define PCI_DEVICE_ID_AMD_RAVEN_15E0_XHCI 0x15e0 -+#define PCI_DEVICE_ID_AMD_RAVEN_15E1_XHCI 0x15e1 -+#define PCI_DEVICE_ID_AMD_RAVEN2_XHCI 0x15e5 -+#define PCI_DEVICE_ID_AMD_RENOIR_XHCI 0x1639 - #define PCI_DEVICE_ID_AMD_PROMONTORYA_4 0x43b9 - #define PCI_DEVICE_ID_AMD_PROMONTORYA_3 0x43ba - #define PCI_DEVICE_ID_AMD_PROMONTORYA_2 0x43bb -@@ -69,6 +78,8 @@ - #define PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_7 0x161c - #define PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_8 0x161f - -+#define PCI_DEVICE_ID_ATI_NAVI10_7316_XHCI 0x7316 -+ - #define PCI_DEVICE_ID_ASMEDIA_1042_XHCI 0x1042 - #define PCI_DEVICE_ID_ASMEDIA_1042A_XHCI 0x1142 - #define PCI_DEVICE_ID_ASMEDIA_1142_XHCI 0x1242 -@@ -154,6 +165,21 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) - if (pdev->vendor == PCI_VENDOR_ID_NEC) - xhci->quirks |= XHCI_NEC_HOST; - -+ if (pdev->vendor == PCI_VENDOR_ID_AMD && -+ (pdev->device == PCI_DEVICE_ID_AMD_ARIEL_TYPEC_XHCI || -+ pdev->device == PCI_DEVICE_ID_AMD_ARIEL_TYPEA_XHCI || -+ pdev->device == PCI_DEVICE_ID_AMD_STARSHIP_XHCI || -+ pdev->device == PCI_DEVICE_ID_AMD_FIREFLIGHT_15D4_XHCI || -+ pdev->device == PCI_DEVICE_ID_AMD_FIREFLIGHT_15D5_XHCI || -+ pdev->device == PCI_DEVICE_ID_AMD_RAVEN_15E0_XHCI || -+ pdev->device == PCI_DEVICE_ID_AMD_RAVEN_15E1_XHCI || -+ pdev->device == PCI_DEVICE_ID_AMD_RAVEN2_XHCI)) -+ xhci->quirks |= XHCI_LIMIT_ENDPOINT_INTERVAL_9; -+ -+ if (pdev->vendor == PCI_VENDOR_ID_ATI && -+ pdev->device == PCI_DEVICE_ID_ATI_NAVI10_7316_XHCI) -+ xhci->quirks |= XHCI_LIMIT_ENDPOINT_INTERVAL_9; -+ - if (pdev->vendor == PCI_VENDOR_ID_AMD && xhci->hci_version == 0x96) - xhci->quirks |= XHCI_AMD_0x96_HOST; - -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index d27b08d43e398..748a823b23dbb 100644 ---- a/drivers/usb/host/xhci.h -+++ b/drivers/usb/host/xhci.h -@@ -1889,6 +1889,7 @@ struct xhci_hcd { - #define XHCI_SKIP_PHY_INIT BIT_ULL(37) - #define XHCI_DISABLE_SPARSE BIT_ULL(38) - #define XHCI_NO_SOFT_RETRY BIT_ULL(40) -+#define XHCI_LIMIT_ENDPOINT_INTERVAL_9 BIT_ULL(41) - - unsigned int num_active_eps; - unsigned int limit_active_eps; --- -2.39.5 - diff --git a/queue-5.4/xhci-allow-rpm-on-the-usb-controller-1022-43f7-by-de.patch b/queue-5.4/xhci-allow-rpm-on-the-usb-controller-1022-43f7-by-de.patch deleted file mode 100644 index 419d438100..0000000000 --- a/queue-5.4/xhci-allow-rpm-on-the-usb-controller-1022-43f7-by-de.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 73260812f3e2416bbf14eb20a086eff513b3f2be Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Mon, 4 Mar 2024 11:13:27 +0530 -Subject: xhci: Allow RPM on the USB controller (1022:43f7) by default - -From: Basavaraj Natikar - -[ Upstream commit 28cbed496059fe1868203b76e9e0ef285733524d ] - -Enable runtime PM by default for older AMD 1022:43f7 xHCI 1.1 host as it -is proven to work. -Driver enables runtime PM by default for newer xHCI 1.2 host. - -Link: https://lore.kernel.org/all/12335218.O9o76ZdvQC@natalenko.name/ -Cc: Mario Limonciello -Tested-by: Oleksandr Natalenko -Signed-off-by: Basavaraj Natikar -Acked-by: Mathias Nyman -Link: https://lore.kernel.org/r/20240304054327.2564500-1-Basavaraj.Natikar@amd.com -Signed-off-by: Greg Kroah-Hartman -Stable-dep-of: cbc889ab0122 ("usb: xhci: quirk for data loss in ISOC transfers") -Signed-off-by: Sasha Levin ---- - drivers/usb/host/xhci-pci.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index e585fa63f766e..64a46db07af86 100644 ---- a/drivers/usb/host/xhci-pci.c -+++ b/drivers/usb/host/xhci-pci.c -@@ -177,8 +177,11 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) - xhci->quirks |= XHCI_RESET_ON_RESUME; - } - -- if (pdev->vendor == PCI_VENDOR_ID_AMD) -+ if (pdev->vendor == PCI_VENDOR_ID_AMD) { - xhci->quirks |= XHCI_TRUST_TX_LENGTH; -+ if (pdev->device == 0x43f7) -+ xhci->quirks |= XHCI_DEFAULT_PM_RUNTIME_ALLOW; -+ } - - if ((pdev->vendor == PCI_VENDOR_ID_AMD) && - ((pdev->device == PCI_DEVICE_ID_AMD_PROMONTORYA_4) || --- -2.39.5 - diff --git a/queue-5.4/xhci-dbc-flush-queued-requests-before-stopping-dbc.patch b/queue-5.4/xhci-dbc-flush-queued-requests-before-stopping-dbc.patch deleted file mode 100644 index 7fb96256c9..0000000000 --- a/queue-5.4/xhci-dbc-flush-queued-requests-before-stopping-dbc.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 9caef1dfdbe6904b6287c930035279f78591a20d Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Sat, 12 Jul 2025 06:00:25 -0400 -Subject: xhci: dbc: Flush queued requests before stopping dbc - -From: Mathias Nyman - -[ Upstream commit efe3e3ae5a66cb38ef29c909e951b4039044bae9 ] - -Flush dbc requests when dbc is stopped and transfer rings are freed. -Failure to flush them lead to leaking memory and dbc completing odd -requests after resuming from suspend, leading to error messages such as: - -[ 95.344392] xhci_hcd 0000:00:0d.0: no matched request - -Cc: stable -Fixes: dfba2174dc42 ("usb: xhci: Add DbC support in xHCI driver") -Signed-off-by: Mathias Nyman -Link: https://lore.kernel.org/r/20250627144127.3889714-5-mathias.nyman@linux.intel.com -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Sasha Levin ---- - drivers/usb/host/xhci-dbgcap.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/drivers/usb/host/xhci-dbgcap.c b/drivers/usb/host/xhci-dbgcap.c -index 93e2cca5262d1..5c8e464adaeb1 100644 ---- a/drivers/usb/host/xhci-dbgcap.c -+++ b/drivers/usb/host/xhci-dbgcap.c -@@ -549,6 +549,18 @@ static void xhci_dbc_stop(struct xhci_hcd *xhci) - - WARN_ON(!dbc); - -+ switch (dbc->state) { -+ case DS_DISABLED: -+ return; -+ case DS_CONFIGURED: -+ spin_lock(&dbc->lock); -+ xhci_dbc_flush_requests(dbc); -+ spin_unlock(&dbc->lock); -+ break; -+ default: -+ break; -+ } -+ - cancel_delayed_work_sync(&dbc->event_work); - - if (port->registered) --- -2.39.5 - diff --git a/queue-5.4/xhci-disable-stream-for-xhc-controller-with-xhci_bro.patch b/queue-5.4/xhci-disable-stream-for-xhc-controller-with-xhci_bro.patch deleted file mode 100644 index d70d9623ac..0000000000 --- a/queue-5.4/xhci-disable-stream-for-xhc-controller-with-xhci_bro.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 914ef1a384c06eeaf19c66863fe8d9d222eff5d9 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 27 Jun 2025 17:41:20 +0300 -Subject: xhci: Disable stream for xHC controller with XHCI_BROKEN_STREAMS - -From: Hongyu Xie - -[ Upstream commit cd65ee81240e8bc3c3119b46db7f60c80864b90b ] - -Disable stream for platform xHC controller with broken stream. - -Fixes: 14aec589327a6 ("storage: accept some UAS devices if streams are unavailable") -Cc: stable -Signed-off-by: Hongyu Xie -Signed-off-by: Mathias Nyman -Link: https://lore.kernel.org/r/20250627144127.3889714-3-mathias.nyman@linux.intel.com -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Sasha Levin ---- - drivers/usb/host/xhci-plat.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c -index fa320006b04d2..73570b392282d 100644 ---- a/drivers/usb/host/xhci-plat.c -+++ b/drivers/usb/host/xhci-plat.c -@@ -333,7 +333,8 @@ static int xhci_plat_probe(struct platform_device *pdev) - if (ret) - goto disable_usb_phy; - -- if (HCC_MAX_PSA(xhci->hcc_params) >= 4) -+ if (HCC_MAX_PSA(xhci->hcc_params) >= 4 && -+ !(xhci->quirks & XHCI_BROKEN_STREAMS)) - xhci->shared_hcd->can_do_streams = 1; - - ret = usb_add_hcd(xhci->shared_hcd, irq, IRQF_SHARED); --- -2.39.5 - -- 2.47.2