> On Thu, Dec 16, 2021 at 3:14 PM Akhil R <akhilrajeev@xxxxxxxxxx> wrote: > > > > Change of_ functions to device_ for firmware agnostic usage. > > of_*() > device_*() > > > This allows to have smbus_alert interrupt without any changes in the > > controller drivers using ACPI table. > > ... > > > - irq = of_property_match_string(adapter->dev.of_node, "interrupt- > names", > > - "smbus_alert"); > > + irq = device_property_match_string(adapter->dev.parent, "interrupt- > names", > > + "smbus_alert"); > > Hmm... Adapter device node is not the same as the node for its parent. > Do you have some code that propagates of_node from parent to child? Adapter device does not have an of_node unless the adapter driver sets it, I guess. I see all the adapter drivers add the of_node and parent for adapter. Also, there are many places in i2c-core-base and i2c-core-acpi where adapter->dev.parent is referred to as the adapter driver device. Basically, adapter->dev.parent and adapter->dev.of_node would ultimately refer to the same device (or the of_node of that device), as far as I understand. > > I.o.w. I would expect to see > > irq = device_property_match_string(&adapter->dev, "interrupt-names", > > here. It would then require adding the fw_node as well from the adapter driver. I felt it made more sense to refer adapter->dev.parent here as most of the (or rather all of the) adapter drivers already sets it. > > > if (irq == -EINVAL || irq == -ENODATA) > > return 0; > > else if (irq < 0) > > TBH the entire code smells. "Interesting" way of getting an optional named > interrupt. I felt it useful to have it this way as it would remain agnostic to device tree and the ACPI. We would not have to add redundant codes in adapter drivers that are using ACPI table. Named interrupts for the ACPI as well, I feel would be a useful addition that can prove to be of value more than this change; I believe. Thanks, Akhil