public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Danilo Krummrich" <dakr@kernel.org>
To: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: "Bartosz Golaszewski" <brgl@kernel.org>,
	"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Linus Walleij" <linusw@kernel.org>,
	"Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
	<driver-core@lists.linux.dev>, <linux-kernel@vger.kernel.org>,
	<linux-gpio@vger.kernel.org>,
	"Bartosz Golaszewski" <bartosz.golaszewski@oss.qualcomm.com>
Subject: Re: [PATCH 1/2] driver core: provide device_match_fwnode_ext()
Date: Fri, 20 Feb 2026 16:43:21 +0100	[thread overview]
Message-ID: <DGJWKFUBSS0W.2AECDX36IMNAO@kernel.org> (raw)
In-Reply-To: <CAJZ5v0gM08=Zq-VMHX-RT78L=HDacbayM7=SoQ2di-Hsc2SB0w@mail.gmail.com>

On Fri Feb 20, 2026 at 1:08 PM CET, Rafael J. Wysocki wrote:
> Secondary fwnodes were not intended for device matching in the first
> place.  The idea was to use them as a secondary supply of device
> properties that may be missing from the primary node (think of an ACPI
> device object accompanied by a software node supplying properties that
> cannot be derived from the former).  They could be added by a driver
> after matching the primary node for the benefit of a generic
> framework.
>
> IMV, the example with children inheriting the fwnode from their parent
> where the user wants to add a different secondary node to each child
> doesn't really match the picture described above.  At least it was not
> anticipated.  The idea was to allow the parent's fwnode to be extended
> and then (possibly) inherited.
>
> That's why the secondary fwnode pointer is there under the primary one.
>
> So all of this goes beyond the original anticipated use of secondary
> fwnodes and it seems to be calling for a list of equivalent (not
> primary and secondary) fwnodes in struct device, but then of course
> there's the question about duplicate properties and whether or not the
> fwnode used for driver binding should be preferred (I don't see why
> not).
>
> Until all of this is resolved, I wouldn't even add a generic helper
> for matching secondary nodes.  I'd just put this code directly into
> gpio_chip_match_by_fwnode() along with a big fat comment explaining
> why exactly secondary nodes need to be taken into account there.

I'm aware that secondary software nodes were originally intended to supply
missing properties only.

However, I wonder whether the capability to match against them isn't actually a
natural, unavoidable consequence of how software nodes can be used to bridge
(broken) connections between providers and consumers.

Or said differently, once PROPERTY_ENTRY_GPIO() - or more generically
PROPERTY_ENTRY_REF() - was introduced, it exposed secondary nodes within the
device graph, which subsystems have to consider.

IIUC, this is also the reason why gpiod_fwnode_lookup() [1] (which is eventually
called from gpiod_get()) has to consider secondary nodes.

So, if I'm not mistaken with the above, it seems fair to provide such a helper.

[1] https://elixir.bootlin.com/linux/v6.19-rc5/source/drivers/gpio/gpiolib.c#L4675

  parent reply	other threads:[~2026-02-20 15:43 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-19 16:31 [PATCH 0/2] driver core: provide and use device_match_fwnode_ext() Bartosz Golaszewski
2026-02-19 16:31 ` [PATCH 1/2] driver core: provide device_match_fwnode_ext() Bartosz Golaszewski
2026-02-19 16:36   ` Greg Kroah-Hartman
2026-02-19 16:39     ` Bartosz Golaszewski
2026-02-19 16:50       ` Greg Kroah-Hartman
2026-02-19 16:54       ` Dmitry Torokhov
2026-02-19 21:15         ` Bartosz Golaszewski
2026-02-20  0:47           ` Dmitry Torokhov
2026-02-20  7:27             ` Andy Shevchenko
2026-02-20 11:06             ` Bartosz Golaszewski
2026-02-19 16:55       ` Danilo Krummrich
2026-02-19 19:27         ` Andy Shevchenko
2026-02-19 21:18           ` Bartosz Golaszewski
2026-02-20  0:21             ` Danilo Krummrich
2026-02-20  7:42             ` Andy Shevchenko
2026-02-20 11:21               ` Bartosz Golaszewski
2026-02-19 21:16         ` Bartosz Golaszewski
2026-02-19 19:58   ` Andy Shevchenko
2026-02-19 21:21     ` Bartosz Golaszewski
2026-02-20  7:36       ` Andy Shevchenko
2026-02-20 11:25         ` Bartosz Golaszewski
2026-02-20 12:08           ` Rafael J. Wysocki
2026-02-20 14:35             ` Bartosz Golaszewski
2026-02-20 14:49               ` Andy Shevchenko
2026-02-20 14:55               ` Rafael J. Wysocki
2026-02-20 15:43             ` Danilo Krummrich [this message]
2026-02-20 16:03               ` Rafael J. Wysocki
2026-02-19 16:31 ` [PATCH 2/2] gpiolib: use device_match_fwnode_ext() Bartosz Golaszewski
2026-02-19 17:32 ` [PATCH 0/2] driver core: provide and " Linus Walleij

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=DGJWKFUBSS0W.2AECDX36IMNAO@kernel.org \
    --to=dakr@kernel.org \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=bartosz.golaszewski@oss.qualcomm.com \
    --cc=brgl@kernel.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=driver-core@lists.linux.dev \
    --cc=gregkh@linuxfoundation.org \
    --cc=linusw@kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rafael@kernel.org \
    /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