Thread (38 messages) 38 messages, 4 authors, 2021-02-06

Re: [net-next PATCH v4 09/15] device property: Introduce fwnode_get_id()

From: "Rafael J. Wysocki" <rafael@kernel.org>
Date: 2021-01-22 18:47:56
Also in: linux-acpi, linux-arm-kernel, lkml

On Fri, Jan 22, 2021 at 6:12 PM Andy Shevchenko
[off-list ref] wrote:
On Fri, Jan 22, 2021 at 05:40:41PM +0100, Rafael J. Wysocki wrote:
quoted
On Fri, Jan 22, 2021 at 4:46 PM Calvin Johnson
[off-list ref] wrote:
quoted
Using fwnode_get_id(), get the reg property value for DT node
or get the _ADR object value for ACPI node.
So I'm not really sure if this is going to be generically useful.

First of all, the meaning of the _ADR return value is specific to a
given bus type (e.g. the PCI encoding of it is different from the I2C
encoding of it) and it just happens to be matching the definition of
the "reg" property for this particular binding.
quoted
IOW, not everyone may expect the "reg" property and the _ADR return
value to have the same encoding and belong to the same set of values,
I have counted three or even four attempts to open code exact this scenario
in the past couple of years. And I have no idea where to put a common base for
them so they will not duplicate this in each case.
In that case it makes sense to have it in the core, but calling the
_ADR return value an "id" generically is a stretch to put it lightly.

It may be better to call the function something like
fwnode_get_local_bus_id() end explain in the kerneldoc comment that
the return value provides a way to distinguish the given device from
the other devices on the same bus segment.

Otherwise it may cause people to expect that the "reg" property and
_ADR are generally equivalent, which is not the case AFAICS.

At least the kerneldoc should say something like "use only if it is
known for a fact that the _ADR return value can be treated as a
fallback replacement for the "reg" property that is missing in the
given use case".
quoted
so maybe put this function somewhere closer to the code that's going
to use it, because it seems to be kind of specific to this particular
use case?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help