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

Andy Shevchenko andriy.shevchenko at linux.intel.com
Wed Jul 2 04:37:57 PDT 2025


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.

> >                         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.
But this can be made shorter with Elvis in use:

						&element, end, nargs_count ?: args_count);

> And analogously below.

And below. And in case if there is a new proposal to have

	if (!nargs_count)
		args_count = acpi_fwnode_get_args_count(device, nargs_prop);

that is exactly what I asked to drop as it's included in the
acpi_fwnode_get_args_count() already, i.e. no need to check this in
the caller and in the callee.

> >                         if (ret < 0)
> >                                 return ret;

...

> >                         if (!ref_fwnode)
> >                                 return -EINVAL;
> >
> > +                       device = to_acpi_device_node(ref_fwnode);
> > +                       nargs_count = acpi_fwnode_get_args_count(device, nargs_prop);
> >                         element++;
> > -
> >                         ret = acpi_get_ref_args(idx == index ? args : NULL,
> >                                                 ref_fwnode, &element, end,
> > -                                               args_count);
> > +                                               nargs_count ? nargs_count : args_count);
> >                         if (ret < 0)
> >                                 return ret;

-- 
With Best Regards,
Andy Shevchenko





More information about the linux-riscv mailing list