]> git.apps.os.sepia.ceph.com Git - ceph-client.git/commitdiff
arm64: dts: qcom: sm8250: Disable USB U1/U2 entry
authorKrishna Kurapati <krishna.kurapati@oss.qualcomm.com>
Tue, 31 Dec 2024 08:11:03 +0000 (13:41 +0530)
committerBjorn Andersson <andersson@kernel.org>
Mon, 6 Jan 2025 23:04:15 +0000 (17:04 -0600)
Disable U1 and U2 power-saving states to improve stability of USB.
These low-power link states, designed to reduce power consumption
during idle periods, can cause issues in latency-sensitive or high
throughput use cases. Over the years, some of the issues seen are
as follows:

1. In device mode of operation, when UVC is active, enabling U1/U2
is sometimes causing packets drops due to delay in entry/exit of
intermittent these low power states. These packet drops are often
reflected as missed isochronous transfers, as the controller wasn't
able to send packet in that microframe interval and hence glitches
are seen on the final transmitted video output.

2. On older targets like SM8150/SM8250/SM8350, there have been
throughput issues seen during tethering use cases.

Disabling these intermittent power states enhances device stability
without affecting power usage.

Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
Signed-off-by: Prashanth K <quic_prashk@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20241231081115.3149850-6-quic_prashk@quicinc.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/sm8250.dtsi

index f39318304da8d02ded9bc4ff833bc88139ded744..d607a66a807c3b480ac33468ef88bc69bdd93d9c 100644 (file)
                                iommus = <&apps_smmu 0x0 0x0>;
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
+                               snps,dis-u1-entry-quirk;
+                               snps,dis-u2-entry-quirk;
                                phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>;
                                phy-names = "usb2-phy", "usb3-phy";
 
                                iommus = <&apps_smmu 0x20 0>;
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
+                               snps,dis-u1-entry-quirk;
+                               snps,dis-u2-entry-quirk;
                                phys = <&usb_2_hsphy>, <&usb_2_qmpphy>;
                                phy-names = "usb2-phy", "usb3-phy";
                        };