> Thanks, my comments below. Thanks for the inputs. > > > Add device_irq_get_byname() to get an interrupt by name from both the > > ACPI table and the Device Tree. > > This needs to be clarified (it's not and, but or), what about: > > Add device_irq_get_byname() to get an interrupt by name from either > ACPI table or Device Tree whichever has it. > > > This will allow to use 'interrupt-names' in _DSD which can be mapped > > to > > In the ACPI case this > allow us to > > > Interrupt() resource by index. The implementation is similar to > > 'interrupt-names' in the Device Tree. > > ... > > > /** > > + * fwnode_irq_get_byname - Get IRQ from a fwnode using its name > > + * @fwnode: Pointer to the firmware node > > + * @name: IRQ name > > + * > > + * Description: > > + * Find a match to the string 'name' in the 'interrupt-names' string > > + array > > 'name' --> @name > > > + * in _DSD for ACPI, or of_node for device tree. Then get the Linux > > + IRQ > > Device Tree > > > + * number of the IRQ resource corresponding to the index of the > > + matched > > + * string. > > + * > > + * Return: > > > + * Linux IRQ number on success > > + * Negative errno otherwise. > > * Linux IRQ number on success, or negative errno otherwise. > > > + */ > > +int fwnode_irq_get_byname(const struct fwnode_handle *fwnode, const > > +char *name) { > > + int index; > > + > > + if (!name) > > + return -EINVAL; > > + > > + index = fwnode_property_match_string(fwnode, "interrupt-names", > name); > > + if (index < 0) > > + return index; > > + > > + return fwnode_irq_get(fwnode, index); } > > ... > > > +/** > > + * device_irq_get_byname - Get IRQ of a device using interrupt name > > + * @dev: Device to get the interrupt > > + * @name: IRQ name > > + * > > + * Description: > > + * Find a match to the string 'name' in the 'interrupt-names' string > > +array > > + * in _DSD for ACPI, or of_node for device tree. Then get the Linux > > +IRQ > > + * number of the IRQ resource corresponding to the index of the > > +matched > > + * string. > > + * > > + * Return: > > + * Linux IRQ number on success > > + * Negative errno otherwise. > > + */ > > As per above. > > ... > > > +int device_irq_get_byname(struct device *dev, const char *name); > > Since we don't have device_irq_get() perhaps we don't need this one right now > (just open code it in the caller). This will satisfy Rafael's request. If to code the same in caller, I guess, it would look like this - irq = fwnode_irq_get_byname(dev_fwnode(adapter->dev.parent), "smbus_alert"); Looks okay to me, but if given an option I would go with device_irq_get_byname(). Thanks, Akhil