On Sat 06 Feb 13:47 CST 2021, Geert Uytterhoeven wrote: > Hi Arnd, > > On Sat, Feb 6, 2021 at 3:36 PM Arnd Bergmann <a...@kernel.org> wrote: > > That said, I'm still not happy about the patch we discussed in the > > other email thread[1] and I'd like to handle it a little more strictly in > > the future, but I agree this wasn't obvious and we have been rather > > inconsistent about it in the past, with some platform maintainers > > handling it way more strictly than others. > > > > I've added the devicetree maintainers and a few other platform > > maintainers to Cc here, maybe they can provide some further > > opinions on the topic so we can come to an approach that > > works for everyone. > > > > My summary of the thread in [1] is there was a driver bug that > > required a DT binding change. Krzysztof and the other involved > > parties made sure the driver handles it in a backward-compatible > > way (an old dtb file will still run into the bug but keep working > > with new kernels), but decided that they did not need to worry > > about the opposite case (running an old kernel with an updated > > dtb). I noticed the compatibility break and said that I would > > prefer this to be done in a way that is compatible both ways, > > or at the minimum be alerted about the binding break in the > > pull request, with an explanation about why this had to be done, > > even when we don't think anyone is going to be affected. > > > > What do others think about this? Should we generally assume > > that breaking old kernels with new dtbs is acceptable, or should > > we try to avoid it if possible, the same way we try to avoid > > breaking new kernels with old dtbs? Should this be a platform > > specific policy or should we try to handle all platforms the same > > way? > > For Renesas SoCs, we typically only consider compatibility of new > kernels with old DTBs, not the other way around. > However, most DTB updates are due to new hardware support, so using the > new DTB with an old kernel usually just means no newly documented > hardware, or new feature, is being used by the old kernel. >
This is the case for the Qualcomm tree as well, it's expected that a new kernel should work with older DT. But, while we don't actively try to break it, there are plenty of examples where we don't/can't give the promise in the other direction. These examples ranges from advancements in power management (implementation and binding) to DT validation forcing deprecation and adoption of new bindings. Regards, Bjorn