On Thu, Jan 02, 2025 at 10:30:38AM +0200, Laurent Pinchart wrote: > On Thu, Jan 02, 2025 at 05:26:50AM +0200, Dmitry Baryshkov wrote: > > On Thu, Jan 02, 2025 at 12:36:20AM +0200, Laurent Pinchart wrote: > > > On Tue, Dec 31, 2024 at 10:10:51PM +0100, Marek Vasut wrote: > > > > On 12/31/24 9:31 PM, Laurent Pinchart wrote: > > > > > Hi Marek, > > > > > > > > Hi, > > > > > > > > > Thank you for the patch. > > > > > > > > > > On Tue, Dec 31, 2024 at 08:28:48PM +0100, Marek Vasut wrote: > > > > >> Add a flag meant purely to work around broken i.MX8MP DTs which enable > > > > >> HDMI but do not contain the HDMI connector node. This flag allows such > > > > >> DTs to work by creating the connector in the HDMI bridge driver. Do not > > > > >> use this flag, do not proliferate this flag, please fix your DTs. > > > > > > > > > > What's the rationale for this, what prevents fixing DT instead of using > > > > > this flag ? Adding such a flag will most likely open the door to > > > > > proliferation. > > > > > > > > See the V2 series discussion, there are a few in-tree DTs which do not > > > > have the HDMI connector node. The rationale is there might be more and > > > > they might come from vendors, so this flag is necessary to work around > > > > those DTs. > > > > > > > > > If you can't fix the DT on particular boards, patching it could be an > > > > > option. We had a similar problem on Renesas boards, which we fixed with > > > > > a DT overlay, see commit 81c0e3dd82927064 ("drm: rcar-du: Fix legacy DT > > > > > to create LVDS encoder nodes"). This made the workaround self-contained, > > > > > and allowed dropping it several kernel versions later (in commit > > > > > 841281fe52a769fe, "drm: rcar-du: Drop LVDS device tree backward > > > > > compatibility"). > > > > > > > > Frankly, I would much rather fix the few in-tree DTs and mandate the > > > > HDMI connector node in DT, which would keep the code simple, rather than > > > > maintain a backward compatibility workaround for problem which might not > > > > even exist. > > > > > > The in-tree device tree sources should be converted as part of the > > > series, I don't see a point trying to maintain backward compatibility > > > for in-tree DT sources. > > > > DT is an ABI. We are supposed to keep backwards compatibility with > > existing device trees (at least for a while). I'm adding DT list and > > maintainers to be able to provide comments on this topic. > > Backward compatibility is about supporting old DT binaries with a newer > kernel. There's no need to support old DT bindings in in-kernel DT > sources. By definition, if someone compiles a DT from a newer kernel and > installs it along with the newer kernel, there's no "backward" > direction. Hmm, nobody is asking to provide compatibility with old DT bindings. However supporting DTs with no extra "display-connector" bridge after the DW bridge is exactly "supporting old DT binaries" in my opinion. > The backward compatibility requirements aim at ensuring no breakage when > upgrading the kernel without upgrading the device tree. As I mentioned, > there is no regression if nobody is affected in the first place. Proving > there is no affected DT in the wild is difficult though. > > > > For out-of-tree sources it depends on how likely the problem is. There's > > > no regression if nobody is affected. I personally like restricting > > > backward compatibility to the strict minimum, to ensure that all new DTs > > > will use proper bindings. Making the backward compatibility code > > > self-contained helps there, and we could also print a loud warning > > > (WARN_ON() seems appropriate) and set a date for the removal of the > > > workaround. > > -- > Regards, > > Laurent Pinchart -- With best wishes Dmitry