]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.1-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 22 Jul 2025 08:47:47 +0000 (10:47 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 22 Jul 2025 08:47:47 +0000 (10:47 +0200)
added patches:
usb-dwc3-qcom-don-t-leave-bcr-asserted.patch

queue-6.1/series
queue-6.1/usb-dwc3-qcom-don-t-leave-bcr-asserted.patch [new file with mode: 0644]

index 2fd21a263f39421ac4b7dc92294d515b9167c2c9..c583bbb2b2a8f935055b0881149925589fdd9417 100644 (file)
@@ -72,3 +72,4 @@ usb-hub-fix-flushing-of-delayed-work-used-for-post-resume-purposes.patch
 usb-hub-don-t-try-to-recover-devices-lost-during-warm-reset.patch
 usb-musb-add-and-use-inline-functions-musb_-get-set-_state.patch
 usb-musb-fix-gadget-state-on-disconnect.patch
+usb-dwc3-qcom-don-t-leave-bcr-asserted.patch
diff --git a/queue-6.1/usb-dwc3-qcom-don-t-leave-bcr-asserted.patch b/queue-6.1/usb-dwc3-qcom-don-t-leave-bcr-asserted.patch
new file mode 100644 (file)
index 0000000..246b1eb
--- /dev/null
@@ -0,0 +1,65 @@
+From ef8abc0ba49ce717e6bc4124e88e59982671f3b5 Mon Sep 17 00:00:00 2001
+From: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
+Date: Wed, 9 Jul 2025 18:59:00 +0530
+Subject: usb: dwc3: qcom: Don't leave BCR asserted
+
+From: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
+
+commit ef8abc0ba49ce717e6bc4124e88e59982671f3b5 upstream.
+
+Leaving the USB BCR asserted prevents the associated GDSC to turn on. This
+blocks any subsequent attempts of probing the device, e.g. after a probe
+deferral, with the following showing in the log:
+
+[    1.332226] usb30_prim_gdsc status stuck at 'off'
+
+Leave the BCR deasserted when exiting the driver to avoid this issue.
+
+Cc: stable <stable@kernel.org>
+Fixes: a4333c3a6ba9 ("usb: dwc3: Add Qualcomm DWC3 glue driver")
+Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
+Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
+Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
+Link: https://lore.kernel.org/r/20250709132900.3408752-1-krishna.kurapati@oss.qualcomm.com
+[ adapted to individual clock management API instead of bulk clock operations ]
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/usb/dwc3/dwc3-qcom.c |    7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+--- a/drivers/usb/dwc3/dwc3-qcom.c
++++ b/drivers/usb/dwc3/dwc3-qcom.c
+@@ -856,13 +856,13 @@ static int dwc3_qcom_probe(struct platfo
+       ret = reset_control_deassert(qcom->resets);
+       if (ret) {
+               dev_err(&pdev->dev, "failed to deassert resets, err=%d\n", ret);
+-              goto reset_assert;
++              return ret;
+       }
+       ret = dwc3_qcom_clk_init(qcom, of_clk_get_parent_count(np));
+       if (ret) {
+               dev_err(dev, "failed to get clocks\n");
+-              goto reset_assert;
++              return ret;
+       }
+       res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+@@ -966,8 +966,6 @@ clk_disable:
+               clk_disable_unprepare(qcom->clks[i]);
+               clk_put(qcom->clks[i]);
+       }
+-reset_assert:
+-      reset_control_assert(qcom->resets);
+       return ret;
+ }
+@@ -997,7 +995,6 @@ static int dwc3_qcom_remove(struct platf
+       qcom->num_clocks = 0;
+       dwc3_qcom_interconnect_exit(qcom);
+-      reset_control_assert(qcom->resets);
+       pm_runtime_allow(dev);
+       pm_runtime_disable(dev);