aboutsummaryrefslogtreecommitdiffci
path: root/patches/usb
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
authorGravatar Saya Andy <saya.andy@posteo.com> 2026-09-18 21:45:43 +0700
committerGravatar Saya Andy <saya.andy@posteo.com> 2026-09-18 21:45:43 +0700
commit1f2b96ab1a13be88c57c78be08168c0bb0080088 (patch)
treecb830075f52e08698d63f0e5c4e1359a063a62b8 /patches/usb
parentee8c44555b0c3d61bf1998ddf3a5823db04ae68f (diff)
downloadkernel-surface-1f2b96ab1a13be88c57c78be08168c0bb0080088.tar.gz
kernel-surface-1f2b96ab1a13be88c57c78be08168c0bb0080088.zip
fix: adapt patches for some 7.2.6 kernel updates to remoteproc and usbfedora-45-kernel-7.2.6-patchset-1
Diffstat (limited to 'patches/usb')
-rw-r--r--patches/usb/0003-7.3-arm64-dts-qcom-hamoa-add-interconnects-to-primary-USB3-controller.patch30
-rw-r--r--patches/usb/0015-phy-qcom-qmp-combo-Prevent-unnecessary-PM-runtime-suspend-at-boot.patch40
-rw-r--r--patches/usb/0016-phy-qcom-qmp-usbc-Prevent-unnecessary-PM-runtime-suspend-at-boot.patch40
3 files changed, 110 insertions, 0 deletions
diff --git a/patches/usb/0003-7.3-arm64-dts-qcom-hamoa-add-interconnects-to-primary-USB3-controller.patch b/patches/usb/0003-7.3-arm64-dts-qcom-hamoa-add-interconnects-to-primary-USB3-controller.patch
new file mode 100644
index 0000000..423b9aa
--- /dev/null
+++ b/patches/usb/0003-7.3-arm64-dts-qcom-hamoa-add-interconnects-to-primary-USB3-controller.patch
@@ -0,0 +1,30 @@
+Add the interconnect paths to enable drivers to vote on them, ensuring
+the necessary NoC bandwidth is available.
+
+This hasn't been done before, as prior to commit 05566ebcc0cd
+("clk: qcom: gcc-x1e80100: Keep GCC USB QTB clock always ON"), this
+would cause an inexplicable crash upon resume from system suspend.
+
+Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
+---
+ arch/arm64/boot/dts/qcom/hamoa.dtsi | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/arch/arm64/boot/dts/qcom/hamoa.dtsi b/arch/arm64/boot/dts/qcom/hamoa.dtsi
+index 051dee076416..233c7ab4c52c 100644
+--- a/arch/arm64/boot/dts/qcom/hamoa.dtsi
++++ b/arch/arm64/boot/dts/qcom/hamoa.dtsi
+@@ -5318,6 +5318,13 @@ usb_1_ss0: usb@a600000 {
+
+ resets = <&gcc GCC_USB30_PRIM_BCR>;
+
++ interconnects = <&usb_south_anoc MASTER_USB3_0 QCOM_ICC_TAG_ALWAYS
++ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
++ <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
++ &config_noc SLAVE_USB3_0 QCOM_ICC_TAG_ACTIVE_ONLY>;
++ interconnect-names = "usb-ddr",
++ "apps-usb";
++
+ wakeup-source;
+
+ iommus = <&apps_smmu 0x1420 0x0>;
diff --git a/patches/usb/0015-phy-qcom-qmp-combo-Prevent-unnecessary-PM-runtime-suspend-at-boot.patch b/patches/usb/0015-phy-qcom-qmp-combo-Prevent-unnecessary-PM-runtime-suspend-at-boot.patch
new file mode 100644
index 0000000..03ed8e7
--- /dev/null
+++ b/patches/usb/0015-phy-qcom-qmp-combo-Prevent-unnecessary-PM-runtime-suspend-at-boot.patch
@@ -0,0 +1,40 @@
+There is a small window where the device can suspend after
+pm_runtime_enable() and before pm_runtime_forbid(), causing an
+unnecessary suspend/resume cycle while the PHY is not yet registered.
+
+Move pm_runtime_forbid() before pm_runtime_enable() to eliminate
+this race.
+
+Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
+Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
+Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
+Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
+---
+ drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
+index 93f1aa10d400..c3661872bb7a 100644
+--- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
++++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
+@@ -4932,15 +4932,15 @@ static int qmp_combo_probe(struct platform_device *pdev)
+ if (ret)
+ goto err_node_put;
+
++ /*
++ * Enable runtime PM support, but forbid it by default.
++ * Users can allow it again via the power/control attribute in sysfs.
++ */
+ pm_runtime_set_active(dev);
++ pm_runtime_forbid(dev);
+ ret = devm_pm_runtime_enable(dev);
+ if (ret)
+ goto err_node_put;
+- /*
+- * Prevent runtime pm from being ON by default. Users can enable
+- * it using power/control in sysfs.
+- */
+- pm_runtime_forbid(dev);
+
+ ret = qmp_combo_register_clocks(qmp, usb_np, dp_np);
+ if (ret)
diff --git a/patches/usb/0016-phy-qcom-qmp-usbc-Prevent-unnecessary-PM-runtime-suspend-at-boot.patch b/patches/usb/0016-phy-qcom-qmp-usbc-Prevent-unnecessary-PM-runtime-suspend-at-boot.patch
new file mode 100644
index 0000000..65fba1f
--- /dev/null
+++ b/patches/usb/0016-phy-qcom-qmp-usbc-Prevent-unnecessary-PM-runtime-suspend-at-boot.patch
@@ -0,0 +1,40 @@
+There is a small window where the device can suspend after
+pm_runtime_enable() and before pm_runtime_forbid(), causing an
+unnecessary suspend/resume cycle while the PHY is not yet registered.
+
+Move pm_runtime_forbid() before pm_runtime_enable() to eliminate
+this race.
+
+Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
+Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
+Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
+Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
+---
+ drivers/phy/qualcomm/phy-qcom-qmp-usbc.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-usbc.c b/drivers/phy/qualcomm/phy-qcom-qmp-usbc.c
+index 14feb77789b3..90ea6ca64026 100644
+--- a/drivers/phy/qualcomm/phy-qcom-qmp-usbc.c
++++ b/drivers/phy/qualcomm/phy-qcom-qmp-usbc.c
+@@ -1959,15 +1959,15 @@ static int qmp_usbc_probe(struct platform_device *pdev)
+ if (ret)
+ goto err_node_put;
+
++ /*
++ * Enable runtime PM support, but forbid it by default.
++ * Users can allow it again via the power/control attribute in sysfs.
++ */
+ pm_runtime_set_active(dev);
++ pm_runtime_forbid(dev);
+ ret = devm_pm_runtime_enable(dev);
+ if (ret)
+ goto err_node_put;
+- /*
+- * Prevent runtime pm from being ON by default. Users can enable
+- * it using power/control in sysfs.
+- */
+- pm_runtime_forbid(dev);
+
+ ret = qmp_usbc_register_clocks(qmp, np);
+ if (ret)