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.