From: Greg Kroah-Hartman Date: Tue, 22 Jul 2025 08:47:57 +0000 (+0200) Subject: 6.6-stable patches X-Git-Tag: v6.1.147~35 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6208826b56ada269a40c23e891fed6ae779dcefd;p=thirdparty%2Fkernel%2Fstable-queue.git 6.6-stable patches added patches: usb-dwc3-qcom-don-t-leave-bcr-asserted.patch --- diff --git a/queue-6.6/series b/queue-6.6/series index e73ed87cc2..9f7cec9680 100644 --- a/queue-6.6/series +++ b/queue-6.6/series @@ -98,3 +98,4 @@ usb-hub-fix-detection-of-high-tier-usb3-devices-behind-suspended-hubs.patch usb-hub-fix-flushing-and-scheduling-of-delayed-work-that-tunes-runtime-pm.patch 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-dwc3-qcom-don-t-leave-bcr-asserted.patch diff --git a/queue-6.6/usb-dwc3-qcom-don-t-leave-bcr-asserted.patch b/queue-6.6/usb-dwc3-qcom-don-t-leave-bcr-asserted.patch new file mode 100644 index 0000000000..1941641ab9 --- /dev/null +++ b/queue-6.6/usb-dwc3-qcom-don-t-leave-bcr-asserted.patch @@ -0,0 +1,66 @@ +From ef8abc0ba49ce717e6bc4124e88e59982671f3b5 Mon Sep 17 00:00:00 2001 +From: Krishna Kurapati +Date: Wed, 9 Jul 2025 18:59:00 +0530 +Subject: usb: dwc3: qcom: Don't leave BCR asserted + +From: Krishna Kurapati + +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 +Fixes: a4333c3a6ba9 ("usb: dwc3: Add Qualcomm DWC3 glue driver") +Acked-by: Thinh Nguyen +Reviewed-by: Konrad Dybcio +Signed-off-by: Krishna Kurapati +Link: https://lore.kernel.org/r/20250709132900.3408752-1-krishna.kurapati@oss.qualcomm.com +[ adapted to individual clock management instead of bulk clock operations ] +Signed-off-by: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/dwc3/dwc3-qcom.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +--- a/drivers/usb/dwc3/dwc3-qcom.c ++++ b/drivers/usb/dwc3/dwc3-qcom.c +@@ -854,13 +854,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_probe(dev, ret, "failed to get clocks\n"); +- goto reset_assert; ++ return ret; + } + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); +@@ -964,8 +964,6 @@ clk_disable: + clk_disable_unprepare(qcom->clks[i]); + clk_put(qcom->clks[i]); + } +-reset_assert: +- reset_control_assert(qcom->resets); + + return ret; + } +@@ -995,8 +993,6 @@ static void dwc3_qcom_remove(struct plat + qcom->num_clocks = 0; + + dwc3_qcom_interconnect_exit(qcom); +- reset_control_assert(qcom->resets); +- + pm_runtime_allow(dev); + pm_runtime_disable(dev); + }