/linux/drivers/irqchip/ |
H A D | spear-shirq.c | 47 u32 nr_irqs; member 90 .nr_irqs = 9, 106 .nr_irqs = 8, 114 .nr_irqs = 5, 122 .nr_irqs = 1, 130 .nr_irqs = 3, 150 .nr_irqs = 7, 158 .nr_irqs = 3, 166 .nr_irqs = 1, 174 .nr_irqs = 11, [all …]
|
H A D | irq-hip04.c | 56 unsigned int nr_irqs; member 250 unsigned int nr_irqs = intc->nr_irqs; in hip04_irq_dist_init() local 260 for (i = 32; i < nr_irqs; i += 2) in hip04_irq_dist_init() 263 gic_dist_config(base, nr_irqs, GICD_INT_DEF_PRI); in hip04_irq_dist_init() 355 int nr_irqs, irq_base, i; in hip04_of_init() local 377 nr_irqs = readl_relaxed(hip04_data.dist_base + GIC_DIST_CTR) & 0x1f; in hip04_of_init() 378 nr_irqs = (nr_irqs + 1) * 32; in hip04_of_init() 379 if (nr_irqs > HIP04_MAX_IRQS) in hip04_of_init() 380 nr_irqs = HIP04_MAX_IRQS; in hip04_of_init() 381 hip04_data.nr_irqs = nr_irqs; in hip04_of_init() [all …]
|
H A D | irq-bcm2712-mip.c | 72 static int mip_alloc_hwirq(struct mip_priv *mip, unsigned int nr_irqs) in mip_alloc_hwirq() argument 75 return bitmap_find_free_region(mip->bitmap, mip->num_msis, ilog2(nr_irqs)); in mip_alloc_hwirq() 79 unsigned int nr_irqs) in mip_free_hwirq() argument 82 bitmap_release_region(mip->bitmap, hwirq, ilog2(nr_irqs)); in mip_free_hwirq() 86 unsigned int nr_irqs, void *arg) in mip_middle_domain_alloc() argument 94 irq = mip_alloc_hwirq(mip, nr_irqs); in mip_middle_domain_alloc() 106 ret = irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, &fwspec); in mip_middle_domain_alloc() 110 for (i = 0; i < nr_irqs; i++) { in mip_middle_domain_alloc() 127 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in mip_middle_domain_alloc() 129 mip_free_hwirq(mip, irq, nr_irqs); in mip_middle_domain_alloc() [all …]
|
H A D | irq-sifive-plic.c | 73 unsigned int nr_irqs; member 255 for (i = 0; i < priv->nr_irqs; i++) { in plic_irq_suspend() 267 for (i = 0; i < DIV_ROUND_UP(priv->nr_irqs, 32); i++) { in plic_irq_suspend() 286 for (i = 0; i < priv->nr_irqs; i++) { in plic_irq_resume() 299 for (i = 0; i < DIV_ROUND_UP(priv->nr_irqs, 32); i++) { in plic_irq_resume() 342 unsigned int nr_irqs, void *arg) in plic_irq_domain_alloc() argument 353 for (i = 0; i < nr_irqs; i++) { in plic_irq_domain_alloc() 446 u32 *nr_irqs, u32 *nr_contexts, in plic_parse_nr_irqs_and_contexts() argument 452 rc = riscv_acpi_get_gsi_info(fwnode, gsi_base, id, nr_irqs, NULL); in plic_parse_nr_irqs_and_contexts() 467 rc = of_property_read_u32(to_of_node(fwnode), "riscv,ndev", nr_irqs); in plic_parse_nr_irqs_and_contexts() [all …]
|
H A D | irq-mmp.c | 39 int nr_irqs; member 249 int ret, nr_irqs, irq, i = 0; in mmp_init_bases() local 251 ret = of_property_read_u32(node, "mrvl,intc-nr-irqs", &nr_irqs); in mmp_init_bases() 264 icu_data[0].domain = irq_domain_create_linear(of_fwnode_handle(node), nr_irqs, in mmp_init_bases() 267 for (irq = 0; irq < nr_irqs; irq++) { in mmp_init_bases() 276 icu_data[0].nr_irqs = nr_irqs; in mmp_init_bases() 360 u32 nr_irqs, mfp_irq; in mmp2_mux_of_init() local 368 &nr_irqs); in mmp2_mux_of_init() 394 icu_data[i].domain = irq_domain_create_linear(of_fwnode_handle(node), nr_irqs, in mmp2_mux_of_init() 397 for (irq = 0; irq < nr_irqs; irq++) { in mmp2_mux_of_init() [all …]
|
H A D | irq-gic-v3-mbi.c | 78 int nr_irqs) in mbi_free_msi() argument 82 get_count_order(nr_irqs)); in mbi_free_msi() 87 unsigned int nr_irqs, void *args) in mbi_irq_domain_alloc() argument 97 get_count_order(nr_irqs)); in mbi_irq_domain_alloc() 115 for (i = 0; i < nr_irqs; i++) { in mbi_irq_domain_alloc() 127 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in mbi_irq_domain_alloc() 128 mbi_free_msi(mbi, hwirq, nr_irqs); in mbi_irq_domain_alloc() 133 unsigned int virq, unsigned int nr_irqs) in mbi_irq_domain_free() argument 138 mbi_free_msi(mbi, d->hwirq, nr_irqs); in mbi_irq_domain_free() 139 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in mbi_irq_domain_free()
|
H A D | irq-mst-intc.c | 30 unsigned int irq_start, nr_irqs; member 133 for (i = 0; i < DIV_ROUND_UP(cd->nr_irqs, 16); i++) in mst_intc_polarity_save() 142 for (i = 0; i < DIV_ROUND_UP(cd->nr_irqs, 16); i++) in mst_intc_polarity_restore() 191 if (fwspec->param[1] >= cd->nr_irqs) in mst_intc_domain_translate() 203 unsigned int nr_irqs, void *data) in mst_intc_domain_alloc() argument 219 for (i = 0; i < nr_irqs; i++) in mst_intc_domain_alloc() 236 return irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, &parent_fwspec); in mst_intc_domain_alloc() 275 cd->nr_irqs = irq_end - irq_start + 1; in mst_intc_of_init() 276 domain = irq_domain_create_hierarchy(domain_parent, 0, cd->nr_irqs, of_fwnode_handle(dn), in mst_intc_of_init()
|
H A D | irq-alpine-msi.c | 106 unsigned int nr_irqs, void *args) in alpine_msix_middle_domain_alloc() argument 111 sgi = alpine_msix_allocate_sgi(priv, nr_irqs); in alpine_msix_middle_domain_alloc() 115 for (i = 0; i < nr_irqs; i++) { in alpine_msix_middle_domain_alloc() 127 alpine_msix_free_sgi(priv, sgi, nr_irqs); in alpine_msix_middle_domain_alloc() 132 unsigned int nr_irqs) in alpine_msix_middle_domain_free() argument 137 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in alpine_msix_middle_domain_free() 138 alpine_msix_free_sgi(priv, d->hwirq, nr_irqs); in alpine_msix_middle_domain_free()
|
H A D | irq-loongson-pch-msi.c | 94 unsigned int nr_irqs, void *args) in pch_msi_middle_domain_alloc() argument 99 hwirq = pch_msi_allocate_hwirq(priv, nr_irqs); in pch_msi_middle_domain_alloc() 103 for (i = 0; i < nr_irqs; i++) { in pch_msi_middle_domain_alloc() 115 pch_msi_free_hwirq(priv, hwirq, nr_irqs); in pch_msi_middle_domain_alloc() 123 unsigned int nr_irqs) in pch_msi_middle_domain_free() argument 128 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in pch_msi_middle_domain_free() 129 pch_msi_free_hwirq(priv, d->hwirq, nr_irqs); in pch_msi_middle_domain_free()
|
H A D | irq-gic-v2m.c | 143 int nr_irqs) in gicv2m_unalloc_msi() argument 147 get_count_order(nr_irqs)); in gicv2m_unalloc_msi() 152 unsigned int nr_irqs, void *args) in gicv2m_irq_domain_alloc() argument 161 get_count_order(nr_irqs)); in gicv2m_irq_domain_alloc() 179 for (i = 0; i < nr_irqs; i++) { in gicv2m_irq_domain_alloc() 191 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in gicv2m_irq_domain_alloc() 192 gicv2m_unalloc_msi(v2m, hwirq, nr_irqs); in gicv2m_irq_domain_alloc() 197 unsigned int virq, unsigned int nr_irqs) in gicv2m_irq_domain_free() argument 202 gicv2m_unalloc_msi(v2m, d->hwirq, nr_irqs); in gicv2m_irq_domain_free() 203 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in gicv2m_irq_domain_free()
|
H A D | irq-ixp4xx.c | 153 unsigned int irq, unsigned int nr_irqs, in ixp4xx_irq_domain_alloc() argument 167 for (i = 0; i < nr_irqs; i++) { in ixp4xx_irq_domain_alloc() 209 int nr_irqs; in ixp4xx_irq_setup() local 227 nr_irqs = 64; in ixp4xx_irq_setup() 229 nr_irqs = 32; in ixp4xx_irq_setup() 237 ixi->domain = irq_domain_create_linear(fwnode, nr_irqs, in ixp4xx_irq_setup()
|
H A D | irq-sg2042-msi.c | 147 unsigned int nr_irqs, void *args) in sg204x_msi_middle_domain_alloc() argument 152 hwirq = sg204x_msi_allocate_hwirq(data, nr_irqs); in sg204x_msi_middle_domain_alloc() 156 for (i = 0; i < nr_irqs; i++) { in sg204x_msi_middle_domain_alloc() 167 sg204x_msi_free_hwirq(data, hwirq, nr_irqs); in sg204x_msi_middle_domain_alloc() 173 unsigned int nr_irqs) in sg204x_msi_middle_domain_free() argument 178 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in sg204x_msi_middle_domain_free() 179 sg204x_msi_free_hwirq(data, d->hwirq, nr_irqs); in sg204x_msi_middle_domain_free()
|
H A D | irq-armada-370-xp.c | 269 static int mpic_msi_alloc(struct irq_domain *domain, unsigned int virq, unsigned int nr_irqs, in mpic_msi_alloc() argument 277 order_base_2(nr_irqs)); in mpic_msi_alloc() 283 for (unsigned int i = 0; i < nr_irqs; i++) { in mpic_msi_alloc() 293 static void mpic_msi_free(struct irq_domain *domain, unsigned int virq, unsigned int nr_irqs) in mpic_msi_free() argument 299 bitmap_release_region(mpic->msi_used, d->hwirq, order_base_2(nr_irqs)); in mpic_msi_free() 457 unsigned int nr_irqs, void *args) in mpic_ipi_alloc() argument 459 for (unsigned int i = 0; i < nr_irqs; i++) { in mpic_ipi_alloc() 469 unsigned int nr_irqs) in mpic_ipi_free() argument 830 unsigned int nr_irqs; in mpic_of_init() local 848 nr_irqs = FIELD_GET(MPIC_INT_CONTROL_NUMINT_MASK, readl(mpic->base + MPIC_INT_CONTROL)); in mpic_of_init() [all …]
|
H A D | irq-mvebu-sei.c | 170 unsigned int nr_irqs, void *arg) in mvebu_sei_domain_alloc() argument 183 unsigned int nr_irqs) in mvebu_sei_domain_free() argument 187 for (i = 0; i < nr_irqs; i++) { in mvebu_sei_domain_free() 211 unsigned int nr_irqs, void *arg) in mvebu_sei_ap_alloc() argument 251 unsigned int virq, unsigned int nr_irqs, in mvebu_sei_cp_domain_alloc() argument 260 if (nr_irqs != 1) in mvebu_sei_cp_domain_alloc() 293 unsigned int virq, unsigned int nr_irqs) in mvebu_sei_cp_domain_free() argument 298 if (nr_irqs != 1 || d->hwirq >= sei->caps->cp_range.size) { in mvebu_sei_cp_domain_free()
|
/linux/drivers/pci/controller/ |
H A D | pcie-iproc-msi.c | 97 int nr_irqs; member 147 return (hwirq % msi->nr_irqs); in hwirq_to_group() 248 unsigned int virq, unsigned int nr_irqs, in iproc_msi_irq_domain_alloc() argument 254 if (msi->nr_cpus > 1 && nr_irqs > 1) in iproc_msi_irq_domain_alloc() 264 order_base_2(msi->nr_cpus * nr_irqs)); in iproc_msi_irq_domain_alloc() 271 for (i = 0; i < nr_irqs; i++) { in iproc_msi_irq_domain_alloc() 282 unsigned int virq, unsigned int nr_irqs) in iproc_msi_irq_domain_free() argument 292 order_base_2(msi->nr_cpus * nr_irqs)); in iproc_msi_irq_domain_free() 296 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in iproc_msi_irq_domain_free() 411 for (eq = 0; eq < msi->nr_irqs; eq++) { in iproc_msi_enable() [all …]
|
/linux/drivers/iommu/ |
H A D | hyperv-iommu.c | 66 unsigned int virq, unsigned int nr_irqs, in hyperv_irq_remapping_alloc() argument 73 if (!info || info->type != X86_IRQ_ALLOC_TYPE_IOAPIC || nr_irqs > 1) in hyperv_irq_remapping_alloc() 76 ret = irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, arg); in hyperv_irq_remapping_alloc() 82 irq_domain_free_irqs_common(domain, virq, nr_irqs); in hyperv_irq_remapping_alloc() 98 unsigned int virq, unsigned int nr_irqs) in hyperv_irq_remapping_free() argument 100 irq_domain_free_irqs_common(domain, virq, nr_irqs); in hyperv_irq_remapping_free() 264 unsigned int virq, unsigned int nr_irqs, in hyperv_root_irq_remapping_alloc() argument 272 if (!info || info->type != X86_IRQ_ALLOC_TYPE_IOAPIC || nr_irqs > 1) in hyperv_root_irq_remapping_alloc() 275 ret = irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, arg); in hyperv_root_irq_remapping_alloc() 281 irq_domain_free_irqs_common(domain, virq, nr_irqs); in hyperv_root_irq_remapping_alloc() [all …]
|
/linux/kernel/irq/ |
H A D | ipi.c | 26 unsigned int nr_irqs, offset; in irq_reserve_ipi() local 40 nr_irqs = cpumask_weight(dest); in irq_reserve_ipi() 41 if (!nr_irqs) { in irq_reserve_ipi() 53 nr_irqs = 1; in irq_reserve_ipi() 78 virq = irq_domain_alloc_descs(-1, nr_irqs, 0, NUMA_NO_NODE, NULL); in irq_reserve_ipi() 84 virq = __irq_domain_alloc_irqs(domain, virq, nr_irqs, NUMA_NO_NODE, in irq_reserve_ipi() 92 for (i = 0; i < nr_irqs; i++) { in irq_reserve_ipi() 101 irq_free_descs(virq, nr_irqs); in irq_reserve_ipi() 120 unsigned int nr_irqs; in irq_destroy_ipi() local 144 nr_irqs = cpumask_weight(dest); in irq_destroy_ipi() [all …]
|
H A D | irqdomain.c | 29 unsigned int nr_irqs, int node, void *arg, 1345 static void irq_domain_free_irq_data(unsigned int virq, unsigned int nr_irqs) in irq_domain_free_irq_data() argument 1350 for (i = 0; i < nr_irqs; i++) { in irq_domain_free_irq_data() 1437 unsigned int virq, unsigned int nr_irqs) in irq_domain_alloc_irq_data() argument 1444 for (i = 0; i < nr_irqs; i++) { in irq_domain_alloc_irq_data() 1534 unsigned int nr_irqs) in irq_domain_free_irqs_common() argument 1539 for (i = 0; i < nr_irqs; i++) { in irq_domain_free_irqs_common() 1544 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in irq_domain_free_irqs_common() 1555 unsigned int nr_irqs) in irq_domain_free_irqs_top() argument 1559 for (i = 0; i < nr_irqs; i++) { in irq_domain_free_irqs_top() [all …]
|
H A D | irqdesc.c | 142 static unsigned int nr_irqs = NR_IRQS; variable 149 return nr_irqs; in irq_get_nr_irqs() 161 nr_irqs = nr; in irq_set_nr_irqs() 189 desc = mt_find(&sparse_irqs, &index, nr_irqs); in irq_find_at_or_after() 191 return desc ? irq_desc_get_irq(desc) : nr_irqs; in irq_find_at_or_after() 545 nr_irqs = nr; in irq_expand_nr_irqs() 559 NR_IRQS, nr_irqs, initcnt); in early_irq_init() 561 if (WARN_ON(nr_irqs > MAX_SPARSE_IRQS)) in early_irq_init() 562 nr_irqs = MAX_SPARSE_IRQS; in early_irq_init() 567 if (initcnt > nr_irqs) in early_irq_init() [all …]
|
/linux/tools/testing/selftests/kvm/arm64/ |
H A D | vgic_irq.c | 27 uint32_t nr_irqs; /* number of KVM supported IRQs. */ member 235 for (i = 0; i < args->nr_irqs; i++) in reset_priorities() 410 uint32_t nr_irqs = args->nr_irqs; in test_injection() local 422 guest_inject(args, nr_irqs - 1, 1, f->cmd); in test_injection() 423 guest_inject(args, MIN_SPI, nr_irqs - MIN_SPI, f->cmd); in test_injection() 430 uint32_t bad_intid[] = { args->nr_irqs, 1020, 1024, 1120, 5120, ~0U, }; in test_injection_failure() 470 uint32_t i, nr_irqs = args->nr_irqs; in guest_code() local 476 for (i = 0; i < nr_irqs; i++) in guest_code() 479 for (i = MIN_SPI; i < nr_irqs; i++) in guest_code() 721 args->nr_irqs, args->level_sensitive, in print_args() [all …]
|
/linux/include/linux/ |
H A D | irqdomain.h | 92 unsigned int nr_irqs, void *arg); 94 unsigned int nr_irqs); 331 int irq_domain_alloc_descs(int virq, unsigned int nr_irqs, irq_hw_number_t hwirq, int node, 565 int __irq_domain_alloc_irqs(struct irq_domain *domain, int irq_base, unsigned int nr_irqs, 568 void irq_domain_free_irqs(unsigned int virq, unsigned int nr_irqs); 581 static inline int irq_domain_alloc_irqs(struct irq_domain *domain, unsigned int nr_irqs, in irq_domain_alloc_irqs() argument 584 return __irq_domain_alloc_irqs(domain, -1, nr_irqs, node, arg, false, NULL); in irq_domain_alloc_irqs() 591 unsigned int nr_irqs); 592 void irq_domain_free_irqs_top(struct irq_domain *domain, unsigned int virq, unsigned int nr_irqs); 598 unsigned int nr_irqs, void *arg); [all …]
|
/linux/drivers/acpi/riscv/ |
H A D | irq.c | 16 u32 nr_irqs; member 73 u32 *id, u32 *nr_irqs, u32 *nr_idcs) in riscv_acpi_get_gsi_info() argument 83 *nr_irqs = ext_intc_element->nr_irqs; in riscv_acpi_get_gsi_info() 103 gsi < (ext_intc_element->gsi_base + ext_intc_element->nr_irqs)) { in riscv_acpi_get_gsi_domain_id() 115 static int __init riscv_acpi_register_ext_intc(u32 gsi_base, u32 nr_irqs, u32 nr_idcs, in riscv_acpi_register_ext_intc() argument 125 ext_intc_element->nr_irqs = nr_irqs; in riscv_acpi_register_ext_intc() 196 gsi < (ext_intc_element->gsi_base + ext_intc_element->nr_irqs)) in riscv_acpi_get_gsi_handle()
|
/linux/arch/x86/platform/uv/ |
H A D | uv_irq.c | 76 unsigned int nr_irqs, void *arg) in uv_domain_alloc() argument 83 if (nr_irqs > 1 || !info || info->type != X86_IRQ_ALLOC_TYPE_UV) in uv_domain_alloc() 91 ret = irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, arg); in uv_domain_alloc() 108 unsigned int nr_irqs) in uv_domain_free() argument 112 BUG_ON(nr_irqs != 1); in uv_domain_free() 115 irq_domain_free_irqs_top(domain, virq, nr_irqs); in uv_domain_free()
|
/linux/arch/arm/mach-omap1/ |
H A D | irq.c | 188 unsigned long nr_irqs; in omap1_init_irq() local 213 nr_irqs = irq_bank_count * 32; in omap1_init_irq() 215 irq_base = irq_alloc_descs(-1, 0, nr_irqs, 0); in omap1_init_irq() 223 domain = irq_domain_create_legacy(NULL, nr_irqs, irq_base, 0, &irq_domain_simple_ops, NULL); in omap1_init_irq() 226 nr_irqs, irq_bank_count); in omap1_init_irq()
|
/linux/arch/arc/kernel/ |
H A D | mcip.c | 379 int nr_irqs; in idu_of_init() local 390 nr_irqs = mcip_idu_bcr_to_nr_irqs(idu_bcr); in idu_of_init() 392 pr_info("MCIP: IDU supports %u common irqs\n", nr_irqs); in idu_of_init() 394 domain = irq_domain_create_linear(of_fwnode_handle(intc), nr_irqs, in idu_of_init() 399 for (i = 0; i < nr_irqs; i++) { in idu_of_init()
|