[RFC PATCH v2 12/17] ACPI: property: Add support for nargs_prop in acpi_fwnode_get_reference_args()

Mika Westerberg mika.westerberg at linux.intel.com
Mon Feb 3 04:36:58 PST 2025


On Mon, Feb 03, 2025 at 05:54:18PM +0530, Sunil V L wrote:
> On Mon, Feb 03, 2025 at 12:58:40PM +0200, Mika Westerberg wrote:
> > On Mon, Feb 03, 2025 at 11:43:26AM +0200, Andy Shevchenko wrote:
> > > On Mon, Feb 03, 2025 at 02:19:01PM +0530, Anup Patel wrote:
> > > > From: Sunil V L <sunilvl at ventanamicro.com>
> > > > 
> > > > fwnode_get_reference_args() which is common for both DT and ACPI passes
> > > > a property name like #mbox-cells which needs to be fetched from the
> > > > reference node to determine the number of arguments needed for the
> > > > property. However, the ACPI version of this function doesn't support
> > > > this and simply ignores the parameter passed from the wrapper function.
> > > > Add support for dynamically finding number of arguments by reading the
> > > > nargs property value. Update the callers to pass extra parameter.
> > > 
> > > I don't like this (implementation).
> > 
> > Agree.
> > 
> > > It seems that we basically have two parameters which values are duplicating
> > > each other. This is error prone API and confusing in the cases when both are
> > > defined. If you want property, add a new API that takes const char *nargs
> > > and relies on the property be present.
> > 
> > Also this is not really needed for ACPI case because it has types so it can
> > distinguish references from integer. Having separate property for this just
> > makes things more complex than they need to be IMHO.
> 
> Thanks! Andy and Mika for your kind feedback. I agree that having both
> property name and nargs is confusing and also ACPI would not need
> nargs_prop. In fact, I think ACPI doesn't need even nargs integer value
> as well from the caller since all integers after the reference are
> counted as arguments.  However, the issue is acpi_get_ref_args() assumes
> that caller passes valid num_args. But typically the common
> fwnode_property_get_reference_args() doesn't usually pass both valid
> values. So, should fwnode_property_get_reference_args() pass both
> nargs_prop (for DT) and nargs (for ACPI). Or do you mean it is better to
> remove the check for num_args in the loop inside acpi_get_ref_args()
> function?

Can you show an example of a case you are trying to solve with this? So far
we have been able to go with the current implementation so why this is
needed now?



More information about the linux-riscv mailing list