On 07/01/2022 20:39, Mark Kettenis wrote: >> Date: Fri, 7 Jan 2022 13:47:03 +0100 >> From: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx> >> >> On 29/12/2021 17:50, Mark Kettenis wrote: >>>> From: Jisheng Zhang <jszhang@xxxxxxxxxx> >>>> Date: Thu, 30 Dec 2021 00:02:38 +0800 >>>> >>>> After commit 281f1f99cf3a("PCI: dwc: Detect number of iATU windows"), >>>> the number of iATU windows is detected at runtime, what's more, >>>> the 'num-viewport' property parsing has been removed, so remove the >>>> unused num-viewport from pcie node(s). >>>> >>>> It's too late for linux-5.17-rc1, I will rebase and send out v2 if >>>> necessary when 5.17-rc1 is released. >>> >>> Please no. This only makes the device trees unnecessarily >>> incompatible with older kernels >> >> Anyone who is running a new DTB with older kernel is doomed anyway, not >> only because of this change but hundreds of other similar cleanups, e.g. >> making DTS conforming to dtschema. Are you sure there are such use cases >> of using new DTB with old kernel? I cannot imagine making a stable >> product with such scenario... > > Well, many of those changes just affect the node names, which aren't > part of the ABI. And adding missing properties or compatibles doesn't > break things either. But yes, we keep seeing diffs to "cleanup" > bindings and device trees, especially in the context of converting > them to dtschema. And that's just wrong. If old device trees don't > pass validation, the default assumption should be that the schema is > wrong; not the other way around. I cannot get how you reached a conclusion that old device tree could be good, but old bindings would be bad... Both were developed without consistency, sometimes without proper review. Simply both can be wrong and now we fix them - the bindings by converting to stricter schema and DTS files by aligning them with new schema. There was never a contract between us and users that OLD kernel will work with NEW DTB. The only contract we made was the other way around - NEW kernel will work with OLD DTB. I understand that it is useful to have new DTB working with old kernel. I consider it as a "nice to have" feature but: 1. Still there are no real users of such pattern (new DTB with old kernel), around Linux kernel. If they are - I am repaeting - their Linux project is already broken. 2. If Linux drivers or other projects depend on node names and anything not being part of bindings (the ABI), they are broken by design. They should either be fixed or accept that might get broken anytime soon because they do not use bindings but undocumented parts (which are not ABI). 3. "Nice to have" should not stop us in improving out codebase and making it easier to maintain for us. We do not make these "dtschema align" changes for pure fun, but to make everything easier for us in the longterm. The dtschema checks I was running (and converting to dtschema) already found errors in DTS. These are real bugs which are fixed by this stricter dtschema. Best regards, Krzysztof