Lines Matching refs:irq_data

491 				   struct irq_data *irq_data)  in irq_domain_set_mapping()  argument
494 domain->linear_revmap[hwirq] = irq_data->irq; in irq_domain_set_mapping()
497 radix_tree_insert(&domain->revmap_tree, hwirq, irq_data); in irq_domain_set_mapping()
504 struct irq_data *irq_data = irq_get_irq_data(irq); in irq_domain_disassociate() local
507 if (WARN(!irq_data || irq_data->domain != domain, in irq_domain_disassociate()
511 hwirq = irq_data->hwirq; in irq_domain_disassociate()
525 irq_data->domain = NULL; in irq_domain_disassociate()
526 irq_data->hwirq = 0; in irq_domain_disassociate()
536 struct irq_data *irq_data = irq_get_irq_data(virq); in irq_domain_associate() local
542 if (WARN(!irq_data, "error: virq%i is not allocated", virq)) in irq_domain_associate()
544 if (WARN(irq_data->domain, "error: virq%i is already associated", virq)) in irq_domain_associate()
548 irq_data->hwirq = hwirq; in irq_domain_associate()
549 irq_data->domain = domain; in irq_domain_associate()
562 irq_data->domain = NULL; in irq_domain_associate()
563 irq_data->hwirq = 0; in irq_domain_associate()
569 if (!domain->name && irq_data->chip) in irq_domain_associate()
570 domain->name = irq_data->chip->name; in irq_domain_associate()
574 irq_domain_set_mapping(domain, hwirq, irq_data); in irq_domain_associate()
764 struct irq_data *irq_data; in irq_create_fwspec_mapping() local
812 irq_data = irq_get_irq_data(virq); in irq_create_fwspec_mapping()
813 if (!irq_data) in irq_create_fwspec_mapping()
816 irqd_set_trigger_type(irq_data, type); in irq_create_fwspec_mapping()
836 irq_data = irq_get_irq_data(virq); in irq_create_fwspec_mapping()
837 if (!irq_data) { in irq_create_fwspec_mapping()
846 irqd_set_trigger_type(irq_data, type); in irq_create_fwspec_mapping()
852 unsigned int irq_create_of_mapping(struct of_phandle_args *irq_data) in irq_create_of_mapping() argument
856 of_phandle_args_to_fwspec(irq_data->np, irq_data->args, in irq_create_of_mapping()
857 irq_data->args_count, &fwspec); in irq_create_of_mapping()
869 struct irq_data *irq_data = irq_get_irq_data(virq); in irq_dispose_mapping() local
872 if (!virq || !irq_data) in irq_dispose_mapping()
875 domain = irq_data->domain; in irq_dispose_mapping()
896 struct irq_data *data; in irq_find_mapping()
1073 struct irq_data *data; in irq_domain_insert_irq()
1091 struct irq_data *data; in irq_domain_remove_irq()
1107 static struct irq_data *irq_domain_insert_irq_data(struct irq_domain *domain, in irq_domain_insert_irq_data()
1108 struct irq_data *child) in irq_domain_insert_irq_data()
1110 struct irq_data *irq_data; in irq_domain_insert_irq_data() local
1112 irq_data = kzalloc_node(sizeof(*irq_data), GFP_KERNEL, in irq_domain_insert_irq_data()
1114 if (irq_data) { in irq_domain_insert_irq_data()
1115 child->parent_data = irq_data; in irq_domain_insert_irq_data()
1116 irq_data->irq = child->irq; in irq_domain_insert_irq_data()
1117 irq_data->common = child->common; in irq_domain_insert_irq_data()
1118 irq_data->domain = domain; in irq_domain_insert_irq_data()
1121 return irq_data; in irq_domain_insert_irq_data()
1126 struct irq_data *irq_data, *tmp; in irq_domain_free_irq_data() local
1130 irq_data = irq_get_irq_data(virq + i); in irq_domain_free_irq_data()
1131 tmp = irq_data->parent_data; in irq_domain_free_irq_data()
1132 irq_data->parent_data = NULL; in irq_domain_free_irq_data()
1133 irq_data->domain = NULL; in irq_domain_free_irq_data()
1136 irq_data = tmp; in irq_domain_free_irq_data()
1138 kfree(irq_data); in irq_domain_free_irq_data()
1146 struct irq_data *irq_data; in irq_domain_alloc_irq_data() local
1152 irq_data = irq_get_irq_data(virq + i); in irq_domain_alloc_irq_data()
1153 irq_data->domain = domain; in irq_domain_alloc_irq_data()
1156 irq_data = irq_domain_insert_irq_data(parent, irq_data); in irq_domain_alloc_irq_data()
1157 if (!irq_data) { in irq_domain_alloc_irq_data()
1172 struct irq_data *irq_domain_get_irq_data(struct irq_domain *domain, in irq_domain_get_irq_data()
1175 struct irq_data *irq_data; in irq_domain_get_irq_data() local
1177 for (irq_data = irq_get_irq_data(virq); irq_data; in irq_domain_get_irq_data()
1178 irq_data = irq_data->parent_data) in irq_domain_get_irq_data()
1179 if (irq_data->domain == domain) in irq_domain_get_irq_data()
1180 return irq_data; in irq_domain_get_irq_data()
1198 struct irq_data *irq_data = irq_domain_get_irq_data(domain, virq); in irq_domain_set_hwirq_and_chip() local
1200 if (!irq_data) in irq_domain_set_hwirq_and_chip()
1203 irq_data->hwirq = hwirq; in irq_domain_set_hwirq_and_chip()
1204 irq_data->chip = chip ? chip : &no_irq_chip; in irq_domain_set_hwirq_and_chip()
1205 irq_data->chip_data = chip_data; in irq_domain_set_hwirq_and_chip()
1237 void irq_domain_reset_irq_data(struct irq_data *irq_data) in irq_domain_reset_irq_data() argument
1239 irq_data->hwirq = 0; in irq_domain_reset_irq_data()
1240 irq_data->chip = &no_irq_chip; in irq_domain_reset_irq_data()
1241 irq_data->chip_data = NULL; in irq_domain_reset_irq_data()
1254 struct irq_data *irq_data; in irq_domain_free_irqs_common() local
1258 irq_data = irq_domain_get_irq_data(domain, virq + i); in irq_domain_free_irqs_common()
1259 if (irq_data) in irq_domain_free_irqs_common()
1260 irq_domain_reset_irq_data(irq_data); in irq_domain_free_irqs_common()
1376 static void irq_domain_fix_revmap(struct irq_data *d) in irq_domain_fix_revmap()
1404 struct irq_data *child_irq_data; in irq_domain_push_irq()
1405 struct irq_data *root_irq_data = irq_get_irq_data(virq); in irq_domain_push_irq()
1485 struct irq_data *root_irq_data = irq_get_irq_data(virq); in irq_domain_pop_irq()
1486 struct irq_data *child_irq_data; in irq_domain_pop_irq()
1487 struct irq_data *tmp_irq_data; in irq_domain_pop_irq()
1551 struct irq_data *data = irq_get_irq_data(virq); in irq_domain_free_irqs()
1607 static void __irq_domain_deactivate_irq(struct irq_data *irq_data) in __irq_domain_deactivate_irq() argument
1609 if (irq_data && irq_data->domain) { in __irq_domain_deactivate_irq()
1610 struct irq_domain *domain = irq_data->domain; in __irq_domain_deactivate_irq()
1613 domain->ops->deactivate(domain, irq_data); in __irq_domain_deactivate_irq()
1614 if (irq_data->parent_data) in __irq_domain_deactivate_irq()
1615 __irq_domain_deactivate_irq(irq_data->parent_data); in __irq_domain_deactivate_irq()
1619 static int __irq_domain_activate_irq(struct irq_data *irqd, bool reserve) in __irq_domain_activate_irq()
1648 int irq_domain_activate_irq(struct irq_data *irq_data, bool reserve) in irq_domain_activate_irq() argument
1652 if (!irqd_is_activated(irq_data)) in irq_domain_activate_irq()
1653 ret = __irq_domain_activate_irq(irq_data, reserve); in irq_domain_activate_irq()
1655 irqd_set_activated(irq_data); in irq_domain_activate_irq()
1667 void irq_domain_deactivate_irq(struct irq_data *irq_data) in irq_domain_deactivate_irq() argument
1669 if (irqd_is_activated(irq_data)) { in irq_domain_deactivate_irq()
1670 __irq_domain_deactivate_irq(irq_data); in irq_domain_deactivate_irq()
1671 irqd_clr_activated(irq_data); in irq_domain_deactivate_irq()
1701 struct irq_data *irq_domain_get_irq_data(struct irq_domain *domain, in irq_domain_get_irq_data()
1704 struct irq_data *irq_data = irq_get_irq_data(virq); in irq_domain_get_irq_data() local
1706 return (irq_data && irq_data->domain == domain) ? irq_data : NULL; in irq_domain_get_irq_data()