Re: [PATCH v3 6/9] i2c: fwnode: add fwnode_find_i2c_adapter_by_node()

From: Andy Shevchenko
Date: Fri Mar 25 2022 - 10:36:41 EST


On Fri, Mar 25, 2022 at 12:31:45PM +0100, Clément Léger wrote:
> Add fwnode_find_i2c_adapter_by_node() which allows to retrieve a i2c
> adapter using a fwnode. Since dev_fwnode() uses the fwnode provided by
> the of_node member of the device, this will also work for devices were
> the of_node has been set and not the fwnode field.
> For acpi nodes, the check for parent node is skipped since
> i2c_acpi_find_adapter_by_handle() does not check it and we don't want
> to change this behavior.

...

> +#include <linux/device.h>
> +#include <linux/i2c.h>

Missed headers so far:
acpi.h

...

> +static int fwnode_dev_or_parent_node_match(struct device *dev, const void *data)
> +{
> + if (device_match_fwnode(dev, data))
> + return 1;
> +
> + /*
> + * For ACPI device node, the behavior is to not match the parent (see
> + * i2c_acpi_find_adapter_by_handle())
> + */

Would it be harmful to drop this check?

> + if (!is_acpi_device_node(dev_fwnode(dev)) && dev->parent)
> + return device_match_fwnode(dev->parent, data);
> +
> + return 0;
> +}

--
With Best Regards,
Andy Shevchenko