On Mon, Jul 12, 2021 at 3:42 PM Mark Brown <broonie@xxxxxxxxxx> wrote: > On Sun, Jul 11, 2021 at 12:37:03PM +0300, Andy Shevchenko wrote: > > On Fri, Jul 9, 2021 at 8:05 PM Mark Brown <broonie@xxxxxxxxxx> wrote: > > > On Thu, Jul 08, 2021 at 11:42:24PM +0100, Daniel Scally wrote: > > > > What is a software node and why would we want to use one here? > > > Software node is a representation of (missed and / or quirked) > > firmware nodes in the code. > > > > Why are we not just using board files, what does this new abstraction > > > solve? > > > Software node _is_ a board file part. The idea behind that is that the > > driver, which requires any additional / necessary property that has > > been missed in the firmware nodes, wouldn't need special treatment if > > that property comes from a board file rather than firmware. > > This doesn't seem to correspond with what these patches are doing, > they're creating something which bears no relation to any firmware > interface and the code is specifically looking for swnodes. Okay, this seems like a different story. The software nodes shouldn't appear on its own in the generic code. When we use software nodes API in it, it means that we have tried other providers _explicitly_ and haven't found what we are looking for and hence we have to check if software nodes are providing the same. For example, here it's done that way: https://elixir.bootlin.com/linux/v5.14-rc1/source/kernel/irq/irqdomain.c#L178. In all other cases it shouldn't be called explicitly. -- With Best Regards, Andy Shevchenko