diff mbox series

arm64: dts: qcom: x1e80100: Mark usb_2 as dma-coherent

Message ID 20250109205232.92336-1-kettenis@openbsd.org (mailing list archive)
State New
Headers show
Series arm64: dts: qcom: x1e80100: Mark usb_2 as dma-coherent | expand

Commit Message

Mark Kettenis Jan. 9, 2025, 8:52 p.m. UTC
Make this USB controller consistent with the others on this platform.

Fixes: 4af46b7bd66f ("arm64: dts: qcom: x1e80100: Add USB nodes")
Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
---
 arch/arm64/boot/dts/qcom/x1e80100.dtsi | 2 ++
 1 file changed, 2 insertions(+)

Comments

Konrad Dybcio Jan. 10, 2025, 12:36 a.m. UTC | #1
On 9.01.2025 9:52 PM, Mark Kettenis wrote:
> Make this USB controller consistent with the others on this platform.
> 
> Fixes: 4af46b7bd66f ("arm64: dts: qcom: x1e80100: Add USB nodes")
> Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
> ---

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Konrad
Johan Hovold Jan. 10, 2025, 4:38 p.m. UTC | #2
On Thu, Jan 09, 2025 at 09:52:31PM +0100, Mark Kettenis wrote:
> Make this USB controller consistent with the others on this platform.
> 
> Fixes: 4af46b7bd66f ("arm64: dts: qcom: x1e80100: Add USB nodes")
> Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
> ---
>  arch/arm64/boot/dts/qcom/x1e80100.dtsi | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> index 4936fa5b98ff..aad1153a443d 100644
> --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> @@ -4814,6 +4814,8 @@ usb_2_dwc3: usb@a200000 {
>  				snps,dis-u1-entry-quirk;
>  				snps,dis-u2-entry-quirk;
>  
> +				dma-coherent;
> +

Can someone from Qualcomm please confirm that this is correct, and that
it's not the other way round and this property should be removed from
the other controllers (e.g. if this was just some copy-pasta from sm8550
which is the only other Qualcomm platform that claims to have
dma-coherent USB controllers).

Johan
Mark Kettenis Jan. 10, 2025, 7:22 p.m. UTC | #3
> Date: Fri, 10 Jan 2025 17:38:39 +0100
> From: Johan Hovold <johan@kernel.org>
> 
> On Thu, Jan 09, 2025 at 09:52:31PM +0100, Mark Kettenis wrote:
> > Make this USB controller consistent with the others on this platform.
> > 
> > Fixes: 4af46b7bd66f ("arm64: dts: qcom: x1e80100: Add USB nodes")
> > Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
> > ---
> >  arch/arm64/boot/dts/qcom/x1e80100.dtsi | 2 ++
> >  1 file changed, 2 insertions(+)
> > 
> > diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> > index 4936fa5b98ff..aad1153a443d 100644
> > --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> > +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> > @@ -4814,6 +4814,8 @@ usb_2_dwc3: usb@a200000 {
> >  				snps,dis-u1-entry-quirk;
> >  				snps,dis-u2-entry-quirk;
> >  
> > +				dma-coherent;
> > +
> 
> Can someone from Qualcomm please confirm that this is correct, and that
> it's not the other way round and this property should be removed from
> the other controllers (e.g. if this was just some copy-pasta from sm8550
> which is the only other Qualcomm platform that claims to have
> dma-coherent USB controllers).

It certainly wouldn't hurt to have confirmation from someone familliar
with the SoC design.

However treating the controllers as DMA coherent when they're not
would almost certainly resulted in reports of USB devices being
unreliable on these machines as the OS would skip necessary cache
flushes.  I did test this patch on the ASUS Vivobook S 15 where the
microSD-card reader uses the usb_2 controller.
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
index 4936fa5b98ff..aad1153a443d 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
@@ -4814,6 +4814,8 @@  usb_2_dwc3: usb@a200000 {
 				snps,dis-u1-entry-quirk;
 				snps,dis-u2-entry-quirk;
 
+				dma-coherent;
+
 				ports {
 					#address-cells = <1>;
 					#size-cells = <0>;