Skip to contentSkip to conversation

Add a quirk in xhci-plat for parent nodes to specify no 64 bit support

PATCH Superseded Naveen Kumar 4 participants 10 messages Oct 31, 2023 – Nov 1, 2023 1 message not in the archive

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

cover Add a quirk in xhci-plat for parent nodes to specify no 64 bit support

From: Naveen Kumar M <[email protected]>

This patch aims to expose the XHCI_NO_64BIT_SUPPORT flag to the parent nodes of xhci for clients to specify if they can not support 64 bit DMA memory pointers. This issue was observed with a Google SoC that uses a DWC3 controller where the virtual address's higher order bits are truncated

Naveen Kumar M (2):
usb: host: xhci-plat: Add quirk-no-64-bit-support
dt-bindings: usb: add no-64-bit-support property

 Documentation/devicetree/bindings/usb/usb-xhci.yaml | 4 ++++
 drivers/usb/host/xhci-plat.c                        | 3 +++
 2 files changed, 7 insertions(+)
Signature · 1 line
2.42.0.820.g83a721a137-goog
#1 lore raw

PATCH 1/2 usb: host: xhci-plat: Add quirk-no-64-bit-support

From: Naveen Kumar M <[email protected]>

This patch exposes the existing quirk XHCI_NO_64BIT_SUPPORT so that dwc3 clients can also use this flag. Despite HCCPARAMS1 being set to 1 some clients may not support 64 bit addressing.

---
 drivers/usb/host/xhci-plat.c | 3 +++
 1 file changed, 3 insertions(+)
drivers/usb/host/xhci-plat.c +3 -0
index b93161374293..d5f37decb7da 100644
@@ -249,6 +249,9 @@ int xhci_plat_probe(struct platform_device *pdev, struct device *sysdev, const s
 		if (device_property_read_bool(tmpdev, "quirk-broken-port-ped"))
 			xhci->quirks |= XHCI_BROKEN_PORT_PED;
 
+		if (device_property_read_bool(tmpdev, "quirk-no-64-bit-support"))
+			xhci->quirks |= XHCI_NO_64BIT_SUPPORT;
+
 		device_property_read_u32(tmpdev, "imod-interval-ns",
 					 &xhci->imod_interval);
 	}
Signature · 1 line
2.42.0.820.g83a721a137-goog
#2 lore raw

Re: [PATCH 1/2] usb: host: xhci-plat: Add quirk-no-64-bit-support

Adding the reviewers/maintainers I missed in the previous mail to this patch

Quoted 29 lines · Naveen Kumar

From: Naveen Kumar M <[email protected]>

This patch exposes the existing quirk XHCI_NO_64BIT_SUPPORT so that dwc3 clients can also use this flag. Despite HCCPARAMS1 being set to 1 some clients may not support 64 bit addressing.

---
 drivers/usb/host/xhci-plat.c | 3 +++
 1 file changed, 3 insertions(+)
drivers/usb/host/xhci-plat.c +3 -1
index b93161374293..d5f37decb7da 100644
@@ -249,6 +249,9 @@ int xhci_plat_probe(struct platform_device *pdev, struct device *sysdev, const s
                if (device_property_read_bool(tmpdev, "quirk-broken-port-ped"))
                        xhci->quirks |= XHCI_BROKEN_PORT_PED;
 
+               if (device_property_read_bool(tmpdev, "quirk-no-64-bit-support"))
+                       xhci->quirks |= XHCI_NO_64BIT_SUPPORT;
+
                device_property_read_u32(tmpdev, "imod-interval-ns",
                                         &xhci->imod_interval);
        }
--

2.42.0.820.g83a721a137-goog

#3 lore raw

Re: [PATCH 1/2] usb: host: xhci-plat: Add quirk-no-64-bit-support

Quoted 1 line · Naveen Kumar M

Adding the reviewers/maintainers I missed in the previous mail to this patch

That's not going to work, please resend a new series, and please, do not top-post.

thanks,

greg k-h

#4 lore raw

PATCH 2/2 dt-bindings: usb: add no-64-bit-support property

In reply to Naveen Kumar

From: Naveen Kumar M <[email protected]>

Add a new DT option to specify whether a host controller is able to support 64-bit DMA memory pointers

---
 Documentation/devicetree/bindings/usb/usb-xhci.yaml | 4 ++++
 1 file changed, 4 insertions(+)
Documentation/devicetree/bindings/usb/usb-xhci.yaml +4 -0
index 180a261c3e8f..20dc134004f3 100644
@@ -25,6 +25,10 @@ properties:
     description: Set if the controller has broken port disable mechanism
     type: boolean
 
+  quirk-no-64-bit-support:
+    description: Set if the xHC doesn't support 64-bit DMA memory pointers
+    type: boolean
+
   imod-interval-ns:
     description: Interrupt moderation interval
     default: 5000
Signature · 1 line
2.42.0.820.g83a721a137-goog
#5 lore raw

Re: [PATCH 2/2] dt-bindings: usb: add no-64-bit-support property

Quoted 29 lines · Naveen Kumar

From: Naveen Kumar M <[email protected]>

Add a new DT option to specify whether a host controller is able to support 64-bit DMA memory pointers

---
 Documentation/devicetree/bindings/usb/usb-xhci.yaml | 4 ++++
 1 file changed, 4 insertions(+)
Documentation/devicetree/bindings/usb/usb-xhci.yaml +4 -0
index 180a261c3e8f..20dc134004f3 100644
@@ -25,6 +25,10 @@ properties:
     description: Set if the controller has broken port disable mechanism
     type: boolean
 
+  quirk-no-64-bit-support:
+    description: Set if the xHC doesn't support 64-bit DMA memory pointers
+    type: boolean
+
   imod-interval-ns:
     description: Interrupt moderation interval
     default: 5000
Signature · 1 line
2.42.0.820.g83a721a137-goog

You did not send this patch to all of the relevant maintainers/reviewers, why not?

please always use scripts/get_maintainer.pl on your patches.

thanks,

greg k-h

#6 lore raw

Re: [PATCH 2/2] dt-bindings: usb: add no-64-bit-support property

In reply to Naveen Kumar
Quoted 8 lines · Naveen Kumar

From: Naveen Kumar M <[email protected]>

Add a new DT option to specify whether a host controller is able to support 64-bit DMA memory pointers

---
 Documentation/devicetree/bindings/usb/usb-xhci.yaml | 4 ++++

Please use scripts/get_maintainers.pl to get a list of necessary people and lists to CC. It might happen, that command when run on an older kernel, gives you outdated entries. Therefore please be sure you base your patches on recent Linux kernel.

You missed at least devicetree list (maybe more), so this won't be tested by automated tooling. Performing review on untested code might be a waste of time, thus I will skip this patch entirely till you follow the process allowing the patch to be tested.

Please kindly resend and include all necessary To/Cc entries.

Best regards,
Krzysztof

A message that is not in the archive (sent off-list or not yet received): CA+Hc5+4Gh6gDuD_NORmJR0zHx3qK6oTagx=wQ_EWf=_NJ0qy6A@mail.gmail.com

#8 lore raw

Re: [PATCH 2/2] dt-bindings: usb: add no-64-bit-support property

Apologies for sending without plain text mode in the previous mail. Adding the reviewers/maintainers I missed in the initial mail to this patch

Quoted 33 lines · Naveen Kumar M

Adding the reviewers/maintainers I missed in the previous mail to this patch

Quoted 29 lines · Naveen Kumar

From: Naveen Kumar M <[email protected]>

Add a new DT option to specify whether a host controller is able to support 64-bit DMA memory pointers

---
 Documentation/devicetree/bindings/usb/usb-xhci.yaml | 4 ++++
 1 file changed, 4 insertions(+)
Documentation/devicetree/bindings/usb/usb-xhci.yaml +4 -1
index 180a261c3e8f..20dc134004f3 100644
@@ -25,6 +25,10 @@ properties:
     description: Set if the controller has broken port disable mechanism
     type: boolean
 
+  quirk-no-64-bit-support:
+    description: Set if the xHC doesn't support 64-bit DMA memory pointers
+    type: boolean
+
   imod-interval-ns:
     description: Interrupt moderation interval
     default: 5000
--

2.42.0.820.g83a721a137-goog

#9 lore raw

Re: [PATCH 2/2] dt-bindings: usb: add no-64-bit-support property

In reply to a message not in the archive
Quoted 1 line · Naveen Kumar M

Adding the reviewers/maintainers I missed in the previous mail to this patch

Nope, it does not work like this.
1. I don't have the patch in mailbox.
2. How can I be sure it was even tested by automation?

I won't be reviewing it. Follow Linux kernel submission process.

Best regards,
Krzysztof

#10 lore raw
In reply to Naveen Kumar

Adding the reviewers/maintainers I missed in the previous mail to this patch

Quoted 20 lines · Naveen Kumar

From: Naveen Kumar M <[email protected]>

This patch aims to expose the XHCI_NO_64BIT_SUPPORT flag to the parent nodes of xhci for clients to specify if they can not support 64 bit DMA memory pointers. This issue was observed with a Google SoC that uses a DWC3 controller where the virtual address's higher order bits are truncated

Naveen Kumar M (2):
usb: host: xhci-plat: Add quirk-no-64-bit-support
dt-bindings: usb: add no-64-bit-support property

 Documentation/devicetree/bindings/usb/usb-xhci.yaml | 4 ++++
 drivers/usb/host/xhci-plat.c                        | 3 +++
 2 files changed, 7 insertions(+)

--
2.42.0.820.g83a721a137-goog