Re: [PATCH 29/29] arm64: dts: qcom: Harmonize DWC USB3 DT nodes name
From: Serge Semin <hidden>
Date: 2021-07-14 12:55:14
Also in:
linux-arm-kernel, linux-arm-msm, linux-devicetree, lkml
Hello John, On Tue, Jul 13, 2021 at 05:07:00PM -0700, John Stultz wrote:
On Tue, Oct 20, 2020 at 5:10 AM Serge Semin [off-list ref] wrote:quoted
In accordance with the DWC USB3 bindings the corresponding node name is suppose to comply with the Generic USB HCD DT schema, which requires the USB nodes to have the name acceptable by the regexp: "^usb(@.*)?" . Make sure the "snps,dwc3"-compatible nodes are correctly named. Signed-off-by: Serge Semin <redacted>
I know folks like to ignore this, but this patch breaks AOSP on db845c. :(
Sorry to hear that. Alas there is no much can be done about it. DT-nodes name is a subject of DT-schema convention and as we've finally unified USB-controller nodes it shouldn't be reverted back. You can find the final USB-controller bindings in: Documentation/devicetree/bindings/usb/usb.yaml It strictly defines to have USB-nodes with names like "usb(@.*)". Reverting this patch will cause the DT-bindings check procedure failure. You can also find the naming convention defined in the latest DT spec: https://github.com/devicetree-org/devicetree-specification/releases/tag/v0.3 See also device-tree bindings requirements listed in the file: Documentation/devicetree/bindings/writing-bindings.rst It says: "DO use node names matching the class of the device. Many standard names are defined in the DT Spec. If there isn't one, consider adding it."
In the exact same way an earlier patch broke HiKey960: https://lore.kernel.org/lkml/CALAqxLWGujgR7p8Vb5S_RimRVYxwm5XF-c4NkKgMH-43wEBaWg@mail.gmail.com/ (local) (which I still have to carry a revert for). I get that this change is useful so more dynamic userland can find devices using consistent naming with future kernels (but doesn't the dynamic userland have to handle the case for older kernels as well?) But for userland that uses static configs, its painful as updating userland to use the new node ids then causes older kernels to fail. I'm looking into how we might be able to probe and set the property dynamically, but AOSP's init system is far more aligned to static configs.
As Krzysztof said in https://lore.kernel.org/lkml/20201221210423.GA2504@kozik-lap/ (local) and Bjorn noted in his response to your email, the only way to solve the problem is to fix the user-land app so one would be able to deal with both old and new DT-nodes name. Alternatively you can just replace the dts with older one, where the name still have the "dwc3"-prefix. -Sergey
This will probably be ignored again, but it would be nice if we could have a release where DTS changes don't break userland for one of my boards. As it feels like its been awhile. thanks -john