[PATCH 00/18] Reserve high bandwidth for HS isoc eps

From: Akash Kumar
Date: Thu Feb 06 2025 - 06:13:03 EST


It is observed while testing multiple audio devices over usb, a glitch is
observed during testing. As per dwc datasheet,By default, HC reserves 80%
of the bandwidth for periodic EPs which can be increased if needed.

Add quirk to set GUCTL register BIT 16 to accommodate higher bandwidth for
2 isoc eps.

If this bit is set, the bandwidth is relaxed to 85% to accommodate two high
speed, high bandwidth ISOC EPs. USB 2.0 required 80% bandwidth allocated
for ISOC traffic. If two High-bandwidth ISOC devices (HD Webcams) are
connected, and if each requires 1024-bytes X 3 packets per Micro-Frame,
then the bandwidth required is around 82%. If this bit is set, then it is
possible to connect two Webcams of 1024bytes X 3 paylod per Micro-Frame
each. Alternatively, you might need to lower the resolution of the
webcams. This bit is valid in Host and DRD configuration and is used in
host mode operation only.

Set this bit for host mode uvc uac usecases where two isoc eps
are used and uvc flickers or audio glitch is observed.


Akash Kumar (18):
usb: dwc3: Reserve Higher Bandwidth for HS Periodic EPs
arm64: dts: qcom: sa8775p: Enable high bandwidth for hs isoc eps
arm64: dts: qcom: sm8350: Enable high bandwidth for hs isoc eps
arm64: dts: qcom: sm8450: Enable high bandwidth for hs isoc eps
arm64: dts: qcom: sm8150: Enable high bandwidth for hs isoc eps
arm64: dts: qcom: sm6125: Enable high bandwidth for hs isoc eps
arm64: dts: qcom: sm8250: Enable high bandwidth for hs isoc eps
arm64: dts: qcom: sm6350: Enable high bandwidth for hs isoc eps
arm64: dts: qcom: sc7280: Enable high bandwidth for hs isoc eps
arm64: dts: qcom: sdm630: Enable high bandwidth for hs isoc eps
arm64: dts: qcom: sdm845: Enable high bandwidth for hs isoc eps
arm64: dts: qcom: sdx75: Enable high bandwidth for hs isoc eps
arm64: dts: qcom: qcs404: Enable high bandwidth for hs isoc eps
arm64: dts: qcom: sc7180: Enable high bandwidth for hs isoc eps
arm64: dts: qcom: x1e80100: Enable high bandwidth for hs isoc eps
arm64: dts: qcom: Enable high bandwidth for hs isoc eps
arm64: dts: qcom: sc8280xp: Enable high bandwidth for hs isoc eps
arm64: dts: qcom: sc8180x: Enable high bandwidth for hs isoc eps

arch/arm64/boot/dts/qcom/qcs404.dtsi | 2 ++
arch/arm64/boot/dts/qcom/qdu1000.dtsi | 1 +
arch/arm64/boot/dts/qcom/sa8775p.dtsi | 3 +++
arch/arm64/boot/dts/qcom/sc7180.dtsi | 1 +
arch/arm64/boot/dts/qcom/sc7280.dtsi | 2 ++
arch/arm64/boot/dts/qcom/sc8180x.dtsi | 3 +++
arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 3 +++
arch/arm64/boot/dts/qcom/sdm630.dtsi | 2 ++
arch/arm64/boot/dts/qcom/sdm845.dtsi | 2 ++
arch/arm64/boot/dts/qcom/sdx75.dtsi | 1 +
arch/arm64/boot/dts/qcom/sm6125.dtsi | 1 +
arch/arm64/boot/dts/qcom/sm6350.dtsi | 1 +
arch/arm64/boot/dts/qcom/sm8150.dtsi | 2 ++
arch/arm64/boot/dts/qcom/sm8250.dtsi | 2 ++
arch/arm64/boot/dts/qcom/sm8350.dtsi | 2 ++
arch/arm64/boot/dts/qcom/sm8450.dtsi | 1 +
arch/arm64/boot/dts/qcom/x1e80100.dtsi | 5 +++++
drivers/usb/dwc3/core.c | 11 +++++++++++
drivers/usb/dwc3/core.h | 4 ++++
19 files changed, 49 insertions(+)

--
2.17.1