[PATCH v7 15/24] ACPI: property: Add support for cells property

Sunil V L sunilvl at ventanamicro.com
Thu Jul 3 02:31:00 PDT 2025


On Wed, Jul 02, 2025 at 06:56:48PM +0200, Rafael J. Wysocki wrote:
> On Wed, Jul 2, 2025 at 5:06 PM Sunil V L <sunilvl at ventanamicro.com> wrote:
> >
> > On Wed, Jul 02, 2025 at 02:39:30PM +0200, Rafael J. Wysocki wrote:
> > > On Wed, Jul 2, 2025 at 1:38 PM Andy Shevchenko
> > > <andriy.shevchenko at linux.intel.com> wrote:
> > > >
> > > > On Wed, Jul 02, 2025 at 12:20:55PM +0200, Rafael J. Wysocki wrote:
> > > > > On Wed, Jul 2, 2025 at 7:16 AM Anup Patel <apatel at ventanamicro.com> wrote:
> > > >
> > > > ...
> > > >
> > > > > >  static int acpi_fwnode_get_reference_args(const struct fwnode_handle *fwnode,
> > > > > >                                           const char *propname, const char *nargs_prop,
> > > > > >                                           unsigned int args_count, unsigned int index,
> > > >
> > > > > >         const struct acpi_device_data *data;
> > > > > >         struct fwnode_handle *ref_fwnode;
> > > > > >         struct acpi_device *device;
> > > > > > +       unsigned int nargs_count;
> > > > > >         int ret, idx = 0;
> > > >
> > > > > > +                       nargs_count = acpi_fwnode_get_args_count(device, nargs_prop);
> > > > >
> > > > > I think it should work the same way as it used to for the callers that
> > > > > pass args_count, so maybe
> > > > >
> > > > > if (!args_count)
> > > > >         args_count = acpi_fwnode_get_args_count(device, nargs_prop);
> > > >
> > > > But this is different variable.
> > >
> > > Of course it is different.  It is an acpi_fwnode_get_reference_args() parameter.
> > >
> > > > > >                         element++;
> > > > > > -
> > > > > >                         ret = acpi_get_ref_args(idx == index ? args : NULL,
> > > > > >                                                 acpi_fwnode_handle(device),
> > > > > > -                                               &element, end, args_count);
> > > > > > +                                               &element, end,
> > > > > > +                                               nargs_count ? nargs_count : args_count);
> > > > >
> > > > > And this change would not be necessary?
> > > >
> > > > This is not the same check as proposed above.
> > >
> > > No, it is not.
> > >
> > > It just makes the function work the same way it did before the change
> > > for the callers who passed nozero args_count and so they might be
> > > forgiven expecting that it would be taken into account.
> >
> > But if we do like this, the expectation of
> > fwnode_property_get_reference_args() will differ for DT and ACPI, right?
> > I mean nargs_prop should take higher precedence than nargs.
> 
> So you basically want acpi_fwnode_get_reference_args() to take
> nargs_prop into account (which could be explained much cleaner in the
> patch changelogs).
> 
Sure. Let me improve the commit message in the next version.
.
> Also, your changes don't modify the behavior of
> __acpi_node_get_property_reference() AFAICS, so this is OK.
> 
That's correct.

> Never mind then, but you could pass nargs_prop along with the
> additional device parameter to acpi_get_ref_args() and make that
> function obtain the nargs_prop value.  In the patch, you need to get
> the nargs_prop value before calling it anyway in both places in which
> it is used.
That's better. Let me update acpi_get_ref_args() itself in the next
version.

Thanks!
Sunil





More information about the linux-riscv mailing list