Lines Matching refs:hwirq

27 				  irq_hw_number_t hwirq, int node);
304 irq_hw_number_t hwirq; in irq_domain_disassociate() local
310 hwirq = irq_data->hwirq; in irq_domain_disassociate()
325 irq_data->hwirq = 0; in irq_domain_disassociate()
328 if (hwirq < domain->revmap_size) { in irq_domain_disassociate()
329 domain->linear_revmap[hwirq] = 0; in irq_domain_disassociate()
332 radix_tree_delete(&domain->revmap_tree, hwirq); in irq_domain_disassociate()
338 irq_hw_number_t hwirq) in irq_domain_associate() argument
343 if (WARN(hwirq >= domain->hwirq_max, in irq_domain_associate()
344 "error: hwirq 0x%x is too large for %s\n", (int)hwirq, domain->name)) in irq_domain_associate()
352 irq_data->hwirq = hwirq; in irq_domain_associate()
355 ret = domain->ops->map(domain, virq, hwirq); in irq_domain_associate()
364 domain->name, hwirq, virq, ret); in irq_domain_associate()
367 irq_data->hwirq = 0; in irq_domain_associate()
377 if (hwirq < domain->revmap_size) { in irq_domain_associate()
378 domain->linear_revmap[hwirq] = virq; in irq_domain_associate()
381 radix_tree_insert(&domain->revmap_tree, hwirq, irq_data); in irq_domain_associate()
460 irq_hw_number_t hwirq) in irq_create_mapping() argument
465 pr_debug("irq_create_mapping(0x%p, 0x%lx)\n", domain, hwirq); in irq_create_mapping()
471 WARN(1, "%s(, %lx) called with NULL domain\n", __func__, hwirq); in irq_create_mapping()
479 virq = irq_find_mapping(domain, hwirq); in irq_create_mapping()
486 virq = irq_domain_alloc_descs(-1, 1, hwirq, of_node_to_nid(of_node)); in irq_create_mapping()
492 if (irq_domain_associate(domain, virq, hwirq)) { in irq_create_mapping()
498 hwirq, of_node_full_name(of_node), virq); in irq_create_mapping()
541 irq_hw_number_t *hwirq, unsigned int *type) in irq_domain_translate() argument
545 return d->ops->translate(d, fwspec, hwirq, type); in irq_domain_translate()
550 hwirq, type); in irq_domain_translate()
553 *hwirq = fwspec->param[0]; in irq_domain_translate()
572 irq_hw_number_t hwirq; in irq_create_fwspec_mapping() local
587 if (irq_domain_translate(domain, fwspec, &hwirq, &type)) in irq_create_fwspec_mapping()
595 virq = irq_find_mapping(domain, hwirq); in irq_create_fwspec_mapping()
604 virq = irq_create_mapping(domain, hwirq); in irq_create_fwspec_mapping()
653 irq_hw_number_t hwirq) in irq_find_mapping() argument
663 if (hwirq < domain->revmap_direct_max_irq) { in irq_find_mapping()
664 data = irq_domain_get_irq_data(domain, hwirq); in irq_find_mapping()
665 if (data && data->hwirq == hwirq) in irq_find_mapping()
666 return hwirq; in irq_find_mapping()
670 if (hwirq < domain->revmap_size) in irq_find_mapping()
671 return domain->linear_revmap[hwirq]; in irq_find_mapping()
674 data = radix_tree_lookup(&domain->revmap_tree, hwirq); in irq_find_mapping()
721 int hwirq = desc->irq_data.hwirq; in virq_debug_show() local
725 seq_printf(m, "0x%05x ", hwirq); in virq_debug_show()
734 direct = (i == hwirq) && (i < domain->revmap_direct_max_irq); in virq_debug_show()
736 (hwirq < domain->revmap_size) ? "LINEAR" : "RADIX", in virq_debug_show()
837 irq_hw_number_t hwirq, int node) in irq_domain_alloc_descs() argument
844 hint = hwirq % nr_irqs; in irq_domain_alloc_descs()
898 irq_hw_number_t hwirq = data->hwirq; in irq_domain_insert_irq() local
900 if (hwirq < domain->revmap_size) { in irq_domain_insert_irq()
901 domain->linear_revmap[hwirq] = virq; in irq_domain_insert_irq()
904 radix_tree_insert(&domain->revmap_tree, hwirq, data); in irq_domain_insert_irq()
927 irq_hw_number_t hwirq = data->hwirq; in irq_domain_remove_irq() local
929 if (hwirq < domain->revmap_size) { in irq_domain_remove_irq()
930 domain->linear_revmap[hwirq] = 0; in irq_domain_remove_irq()
933 radix_tree_delete(&domain->revmap_tree, hwirq); in irq_domain_remove_irq()
1026 irq_hw_number_t hwirq, struct irq_chip *chip, in irq_domain_set_hwirq_and_chip() argument
1034 irq_data->hwirq = hwirq; in irq_domain_set_hwirq_and_chip()
1053 irq_hw_number_t hwirq, struct irq_chip *chip, in irq_domain_set_info() argument
1057 irq_domain_set_hwirq_and_chip(domain, virq, hwirq, chip, chip_data); in irq_domain_set_info()
1068 irq_data->hwirq = 0; in irq_domain_reset_irq_data()
1359 irq_hw_number_t hwirq, struct irq_chip *chip, in irq_domain_set_info() argument