/** * auxiliary_device_sysfs_irq_add - add a sysfs entry for the given IRQ * @auxdev: auxiliary bus device to add the sysfs entry. * @irq: The associated interrupt number. * * This function should be called after auxiliary device have successfully * received the irq. * The driver is responsible to add a unique irq for the auxiliary device. The * driver can invoke this function from multiple thread context safely for * unique irqs of the auxiliary devices. The driver must not invoke this API * multiple times if the irq is already added previously. * * Return: zero on success or an error code on failure.
*/ int auxiliary_device_sysfs_irq_add(struct auxiliary_device *auxdev, int irq)
{ struct auxiliary_irq_info *info __free(kfree) = NULL; struct device *dev = &auxdev->dev; int ret;
ret = auxiliary_irq_dir_prepare(auxdev); if (ret) return ret;
info = kzalloc(sizeof(*info), GFP_KERNEL); if (!info) return -ENOMEM;
/** * auxiliary_device_sysfs_irq_remove - remove a sysfs entry for the given IRQ * @auxdev: auxiliary bus device to add the sysfs entry. * @irq: the IRQ to remove. * * This function should be called to remove an IRQ sysfs entry. * The driver must invoke this API when IRQ is released by the device.
*/ void auxiliary_device_sysfs_irq_remove(struct auxiliary_device *auxdev, int irq)
{ struct auxiliary_irq_info *info __free(kfree) = xa_load(&auxdev->sysfs.irqs, irq); struct device *dev = &auxdev->dev;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.