RE: [PATCH 1/3] ASoC: da7219: Convert driver to use generic device/fwnode functions

From: Opensource [Adam Thomson]
Date: Fri May 06 2016 - 10:33:17 EST


On May 06, 2016, 13:27, Mark Brown wrote:

> > This change converts the driver from using the of_* functions to using
> > the device_* and fwnode_* functions for accssing DT related data.
> > This is in preparation for updates to support ACPI based initialisation.
>
> Is this *really* sensible? DT idioms don't always match up with ACPI
> idioms well and this isn't a trivial DT binding.

For what we're doing here, both DT and ACPI match up well, and so what I've
implemented works on both sides. There are other examples of this already in the
Linux kernel, so I don't think it's anything particularly new.

>
> > +static struct fwnode_handle *da7219_aad_of_named_fwhandle(struct device
> *dev,
> > + const char *name)
> > +{
> > + struct fwnode_handle *child;
> > + struct device_node *of_node;
> > +
> > + /* Find first matching child node */
> > + device_for_each_child_node(dev, child) {
> > + if (is_of_node(child)) {
> > + of_node = to_of_node(child);
> > + if (of_node_cmp(of_node->name, name) == 0)
> > + return child;
> > + }
> > + }
> > +
> > + return NULL;
> > +}
>
> There's nothing device specific about this, it should go in generic
> code.

The intention was to just match against DT or ACPI and nothing else, so that
didn't feel generic enough to be pushed into the fwnode framework. However
I will take another look.