• Home
  • Raw
  • Download

Lines Matching refs:irq_data

542 				   struct irq_data *irq_data)  in irq_domain_set_mapping()  argument
549 rcu_assign_pointer(domain->revmap[hwirq], irq_data); in irq_domain_set_mapping()
551 radix_tree_insert(&domain->revmap_tree, hwirq, irq_data); in irq_domain_set_mapping()
557 struct irq_data *irq_data = irq_get_irq_data(irq); in irq_domain_disassociate() local
560 if (WARN(!irq_data || irq_data->domain != domain, in irq_domain_disassociate()
564 hwirq = irq_data->hwirq; in irq_domain_disassociate()
581 irq_data->domain = NULL; in irq_domain_disassociate()
582 irq_data->hwirq = 0; in irq_domain_disassociate()
594 struct irq_data *irq_data = irq_get_irq_data(virq); in irq_domain_associate_locked() local
600 if (WARN(!irq_data, "error: virq%i is not allocated", virq)) in irq_domain_associate_locked()
602 if (WARN(irq_data->domain, "error: virq%i is already associated", virq)) in irq_domain_associate_locked()
605 irq_data->hwirq = hwirq; in irq_domain_associate_locked()
606 irq_data->domain = domain; in irq_domain_associate_locked()
619 irq_data->domain = NULL; in irq_domain_associate_locked()
620 irq_data->hwirq = 0; in irq_domain_associate_locked()
625 if (!domain->name && irq_data->chip) in irq_domain_associate_locked()
626 domain->name = irq_data->chip->name; in irq_domain_associate_locked()
630 irq_domain_set_mapping(domain, hwirq, irq_data); in irq_domain_associate_locked()
813 struct irq_data *irq_data; in irq_create_fwspec_mapping() local
863 irq_data = irq_get_irq_data(virq); in irq_create_fwspec_mapping()
864 if (!irq_data) { in irq_create_fwspec_mapping()
869 irqd_set_trigger_type(irq_data, type); in irq_create_fwspec_mapping()
893 irq_data = irq_get_irq_data(virq); in irq_create_fwspec_mapping()
894 if (WARN_ON(!irq_data)) { in irq_create_fwspec_mapping()
900 irqd_set_trigger_type(irq_data, type); in irq_create_fwspec_mapping()
908 unsigned int irq_create_of_mapping(struct of_phandle_args *irq_data) in irq_create_of_mapping() argument
912 of_phandle_args_to_fwspec(irq_data->np, irq_data->args, in irq_create_of_mapping()
913 irq_data->args_count, &fwspec); in irq_create_of_mapping()
925 struct irq_data *irq_data = irq_get_irq_data(virq); in irq_dispose_mapping() local
928 if (!virq || !irq_data) in irq_dispose_mapping()
931 domain = irq_data->domain; in irq_dispose_mapping()
957 struct irq_data *data; in __irq_resolve_mapping()
1128 void irq_domain_reset_irq_data(struct irq_data *irq_data) in irq_domain_reset_irq_data() argument
1130 irq_data->hwirq = 0; in irq_domain_reset_irq_data()
1131 irq_data->chip = &no_irq_chip; in irq_domain_reset_irq_data()
1132 irq_data->chip_data = NULL; in irq_domain_reset_irq_data()
1179 struct irq_data *data; in irq_domain_insert_irq()
1197 struct irq_data *data; in irq_domain_remove_irq()
1213 static struct irq_data *irq_domain_insert_irq_data(struct irq_domain *domain, in irq_domain_insert_irq_data()
1214 struct irq_data *child) in irq_domain_insert_irq_data()
1216 struct irq_data *irq_data; in irq_domain_insert_irq_data() local
1218 irq_data = kzalloc_node(sizeof(*irq_data), GFP_KERNEL, in irq_domain_insert_irq_data()
1220 if (irq_data) { in irq_domain_insert_irq_data()
1221 child->parent_data = irq_data; in irq_domain_insert_irq_data()
1222 irq_data->irq = child->irq; in irq_domain_insert_irq_data()
1223 irq_data->common = child->common; in irq_domain_insert_irq_data()
1224 irq_data->domain = domain; in irq_domain_insert_irq_data()
1227 return irq_data; in irq_domain_insert_irq_data()
1230 static void __irq_domain_free_hierarchy(struct irq_data *irq_data) in __irq_domain_free_hierarchy() argument
1232 struct irq_data *tmp; in __irq_domain_free_hierarchy()
1234 while (irq_data) { in __irq_domain_free_hierarchy()
1235 tmp = irq_data; in __irq_domain_free_hierarchy()
1236 irq_data = irq_data->parent_data; in __irq_domain_free_hierarchy()
1243 struct irq_data *irq_data, *tmp; in irq_domain_free_irq_data() local
1247 irq_data = irq_get_irq_data(virq + i); in irq_domain_free_irq_data()
1248 tmp = irq_data->parent_data; in irq_domain_free_irq_data()
1249 irq_data->parent_data = NULL; in irq_domain_free_irq_data()
1250 irq_data->domain = NULL; in irq_domain_free_irq_data()
1272 struct irq_data *irqd; in irq_domain_disconnect_hierarchy()
1285 struct irq_data *tail, *irqd, *irq_data; in irq_domain_trim_hierarchy() local
1287 irq_data = irq_get_irq_data(virq); in irq_domain_trim_hierarchy()
1291 if (!irq_data->chip || IS_ERR(irq_data->chip)) in irq_domain_trim_hierarchy()
1298 for (irqd = irq_data->parent_data; irqd; irq_data = irqd, irqd = irqd->parent_data) { in irq_domain_trim_hierarchy()
1312 tail = irq_data; in irq_domain_trim_hierarchy()
1335 struct irq_data *irq_data; in irq_domain_alloc_irq_data() local
1341 irq_data = irq_get_irq_data(virq + i); in irq_domain_alloc_irq_data()
1342 irq_data->domain = domain; in irq_domain_alloc_irq_data()
1345 irq_data = irq_domain_insert_irq_data(parent, irq_data); in irq_domain_alloc_irq_data()
1346 if (!irq_data) { in irq_domain_alloc_irq_data()
1361 struct irq_data *irq_domain_get_irq_data(struct irq_domain *domain, in irq_domain_get_irq_data()
1364 struct irq_data *irq_data; in irq_domain_get_irq_data() local
1366 for (irq_data = irq_get_irq_data(virq); irq_data; in irq_domain_get_irq_data()
1367 irq_data = irq_data->parent_data) in irq_domain_get_irq_data()
1368 if (irq_data->domain == domain) in irq_domain_get_irq_data()
1369 return irq_data; in irq_domain_get_irq_data()
1387 struct irq_data *irq_data = irq_domain_get_irq_data(domain, virq); in irq_domain_set_hwirq_and_chip() local
1389 if (!irq_data) in irq_domain_set_hwirq_and_chip()
1392 irq_data->hwirq = hwirq; in irq_domain_set_hwirq_and_chip()
1393 irq_data->chip = chip ? chip : &no_irq_chip; in irq_domain_set_hwirq_and_chip()
1394 irq_data->chip_data = chip_data; in irq_domain_set_hwirq_and_chip()
1431 struct irq_data *irq_data; in irq_domain_free_irqs_common() local
1435 irq_data = irq_domain_get_irq_data(domain, virq + i); in irq_domain_free_irqs_common()
1436 if (irq_data) in irq_domain_free_irqs_common()
1437 irq_domain_reset_irq_data(irq_data); in irq_domain_free_irqs_common()
1577 static void irq_domain_fix_revmap(struct irq_data *d) in irq_domain_fix_revmap()
1610 struct irq_data *child_irq_data; in irq_domain_push_irq()
1611 struct irq_data *root_irq_data = irq_get_irq_data(virq); in irq_domain_push_irq()
1692 struct irq_data *root_irq_data = irq_get_irq_data(virq); in irq_domain_pop_irq()
1693 struct irq_data *child_irq_data; in irq_domain_pop_irq()
1694 struct irq_data *tmp_irq_data; in irq_domain_pop_irq()
1758 struct irq_data *data = irq_get_irq_data(virq); in irq_domain_free_irqs()
1810 static void __irq_domain_deactivate_irq(struct irq_data *irq_data) in __irq_domain_deactivate_irq() argument
1812 if (irq_data && irq_data->domain) { in __irq_domain_deactivate_irq()
1813 struct irq_domain *domain = irq_data->domain; in __irq_domain_deactivate_irq()
1816 domain->ops->deactivate(domain, irq_data); in __irq_domain_deactivate_irq()
1817 if (irq_data->parent_data) in __irq_domain_deactivate_irq()
1818 __irq_domain_deactivate_irq(irq_data->parent_data); in __irq_domain_deactivate_irq()
1822 static int __irq_domain_activate_irq(struct irq_data *irqd, bool reserve) in __irq_domain_activate_irq()
1851 int irq_domain_activate_irq(struct irq_data *irq_data, bool reserve) in irq_domain_activate_irq() argument
1855 if (!irqd_is_activated(irq_data)) in irq_domain_activate_irq()
1856 ret = __irq_domain_activate_irq(irq_data, reserve); in irq_domain_activate_irq()
1858 irqd_set_activated(irq_data); in irq_domain_activate_irq()
1870 void irq_domain_deactivate_irq(struct irq_data *irq_data) in irq_domain_deactivate_irq() argument
1872 if (irqd_is_activated(irq_data)) { in irq_domain_deactivate_irq()
1873 __irq_domain_deactivate_irq(irq_data); in irq_domain_deactivate_irq()
1874 irqd_clr_activated(irq_data); in irq_domain_deactivate_irq()
1904 struct irq_data *irq_domain_get_irq_data(struct irq_domain *domain, in irq_domain_get_irq_data()
1907 struct irq_data *irq_data = irq_get_irq_data(virq); in irq_domain_get_irq_data() local
1909 return (irq_data && irq_data->domain == domain) ? irq_data : NULL; in irq_domain_get_irq_data()