From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Bartosz Golaszewski <brgl@bgdev.pl>
Cc: Linus Walleij <linus.walleij@linaro.org>,
Daniel Scally <djrscally@gmail.com>,
Heikki Krogerus <heikki.krogerus@linux.intel.com>,
Sakari Ailus <sakari.ailus@linux.intel.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Danilo Krummrich <dakr@kernel.org>,
Philipp Zabel <p.zabel@pengutronix.de>,
Krzysztof Kozlowski <krzk@kernel.org>,
linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-acpi@vger.kernel.org,
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Subject: Re: [PATCH 3/9] software node: allow referencing firmware nodes
Date: Mon, 20 Oct 2025 13:05:46 +0300 [thread overview]
Message-ID: <aPYJeqFY_9YV9AQn@ashevche-desk.local> (raw)
In-Reply-To: <CAMRc=MfOoHn+mLRpQBEsC3g5sM=VZBgVffsm68CAXJBHffPxdA@mail.gmail.com>
On Mon, Oct 20, 2025 at 10:06:43AM +0200, Bartosz Golaszewski wrote:
> On Sat, Oct 18, 2025 at 7:34 PM Andy Shevchenko
> <andriy.shevchenko@linux.intel.com> wrote:
> > On Mon, Oct 06, 2025 at 03:00:18PM +0200, Bartosz Golaszewski wrote:
...
> > > +enum software_node_ref_type {
> > > + /* References a software node. */
> > > + SOFTWARE_NODE_REF_SWNODE = 0,
> >
> > I don't see why we need an explicit value here.
>
> It was to make it clear, this is the default value and it's the one
> used in older code with the legacy macros. I can drop it, it's no big
> deal.
Usually when we assign a default value(s) in enum, it should be justified.
The common mistake here (not this case) is to use autoincrement feature
with some of the values explicitly defined for the enums that reflect the
HW bits / states, which obviously makes code fragile and easy to break.
> > > + /* References a firmware node. */
> > > + SOFTWARE_NODE_REF_FWNODE,
> > > +};
...
> > > /**
> > > * struct software_node_ref_args - Reference property with additional arguments
> > > - * @node: Reference to a software node
> > > + * @swnode: Reference to a software node
> > > + * @fwnode: Alternative reference to a firmware node handle
> > > * @nargs: Number of elements in @args array
> > > * @args: Integer arguments
> > > */
> > > struct software_node_ref_args {
> > > - const struct software_node *node;
> > > + enum software_node_ref_type type;
> > > + union {
> > > + const struct software_node *swnode;
> > > + struct fwnode_handle *fwnode;
> > > + };
> >
> > Can't we always have an fwnode reference?
>
> Unfortunately no. A const struct software_node is not yet a full
> fwnode, it's just a template that becomes an actual firmware node when
> it's registered with the swnode framework. However in order to allow
> creating a graph of software nodes before we register them, we need a
> way to reference those templates and then look them up internally in
> swnode code.
Strange that you need this way. The IPU3 bridge driver (that creates a graph of
fwnodes at run-time for being consumed by the respective parts of v4l2
framework) IIRC has no such issue. Why your case is different?
> > > unsigned int nargs;
> > > u64 args[NR_FWNODE_REFERENCE_ARGS];
> > > };
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2025-10-20 10:05 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-06 13:00 [PATCH 0/9] reset: rework reset-gpios handling Bartosz Golaszewski
2025-10-06 13:00 ` [PATCH 1/9] software node: read the reference args via the fwnode API Bartosz Golaszewski
2025-10-13 20:05 ` Andy Shevchenko
2025-10-22 7:51 ` Bartosz Golaszewski
2025-10-22 8:24 ` Sakari Ailus
2025-10-22 8:35 ` Bartosz Golaszewski
2025-10-06 13:00 ` [PATCH 2/9] software node: increase the reference of the swnode by its fwnode Bartosz Golaszewski
2025-10-06 13:00 ` [PATCH 3/9] software node: allow referencing firmware nodes Bartosz Golaszewski
2025-10-13 20:11 ` Andy Shevchenko
2025-10-20 8:06 ` Bartosz Golaszewski
2025-10-20 10:05 ` Andy Shevchenko [this message]
2025-10-20 11:26 ` Bartosz Golaszewski
2025-10-21 6:54 ` Sakari Ailus
2025-10-21 9:06 ` Bartosz Golaszewski
2025-10-21 9:14 ` Andy Shevchenko
2025-10-06 13:00 ` [PATCH 4/9] gpio: swnode: don't use the swnode's name as the key for GPIO lookup Bartosz Golaszewski
2025-10-06 13:00 ` [PATCH 5/9] gpio: swnode: update the property definitions Bartosz Golaszewski
2025-10-06 13:00 ` [PATCH 6/9] reset: order includes alphabetically in reset/core.c Bartosz Golaszewski
2025-10-06 15:20 ` Philipp Zabel
2025-10-06 13:00 ` [PATCH 7/9] reset: make the provider of reset-gpios the parent of the reset device Bartosz Golaszewski
2025-10-06 15:19 ` Philipp Zabel
2025-10-20 15:25 ` Bartosz Golaszewski
2025-10-21 9:17 ` Philipp Zabel
2025-10-21 9:27 ` Bartosz Golaszewski
2025-10-21 9:31 ` Philipp Zabel
2025-10-21 9:39 ` Bartosz Golaszewski
2025-10-21 14:55 ` Andy Shevchenko
2025-10-21 15:03 ` Andy Shevchenko
2025-10-21 15:23 ` Bartosz Golaszewski
2025-10-21 15:47 ` Andy Shevchenko
2025-10-22 8:39 ` Philipp Zabel
2025-10-22 12:17 ` Bartosz Golaszewski
2025-10-22 16:11 ` Andy Shevchenko
2025-10-20 15:56 ` Bartosz Golaszewski
2025-10-06 13:00 ` [PATCH 8/9] reset: gpio: convert the driver to using the auxiliary bus Bartosz Golaszewski
2025-10-06 15:22 ` Philipp Zabel
2025-10-06 13:00 ` [PATCH 9/9] reset: gpio: use software nodes to setup the GPIO lookup Bartosz Golaszewski
2025-10-06 15:55 ` Philipp Zabel
2025-10-10 14:07 ` Bartosz Golaszewski
2025-10-17 7:12 ` [PATCH 0/9] reset: rework reset-gpios handling Bartosz Golaszewski
2025-10-18 19:28 [PATCH 3/9] software node: allow referencing firmware nodes Andy Shevchenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aPYJeqFY_9YV9AQn@ashevche-desk.local \
--to=andriy.shevchenko@linux.intel.com \
--cc=bartosz.golaszewski@linaro.org \
--cc=brgl@bgdev.pl \
--cc=dakr@kernel.org \
--cc=djrscally@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=heikki.krogerus@linux.intel.com \
--cc=krzk@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=rafael@kernel.org \
--cc=sakari.ailus@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®