/linux-4.19.296/drivers/misc/ocxl/ |
D | afu_irq.c | 12 unsigned int virq; member 28 static irqreturn_t afu_irq_handler(int virq, void *data) in afu_irq_handler() argument 32 trace_ocxl_afu_irq_receive(virq); in afu_irq_handler() 42 irq->virq = irq_create_mapping(NULL, irq->hw_irq); in setup_afu_irq() 43 if (!irq->virq) { in setup_afu_irq() 47 pr_debug("hw_irq %d mapped to virq %u\n", irq->hw_irq, irq->virq); in setup_afu_irq() 49 irq->name = kasprintf(GFP_KERNEL, "ocxl-afu-%u", irq->virq); in setup_afu_irq() 51 irq_dispose_mapping(irq->virq); in setup_afu_irq() 55 rc = request_irq(irq->virq, afu_irq_handler, 0, irq->name, irq); in setup_afu_irq() 59 irq_dispose_mapping(irq->virq); in setup_afu_irq() [all …]
|
D | trace.h | 110 TP_PROTO(int pasid, int irq_id, unsigned int virq, int hw_irq, 112 TP_ARGS(pasid, irq_id, virq, hw_irq, irq_offset), 117 __field(unsigned int, virq) 125 __entry->virq = virq; 133 __entry->virq, 160 TP_PROTO(int virq), 161 TP_ARGS(virq), 164 __field(int, virq) 168 __entry->virq = virq; 172 __entry->virq
|
/linux-4.19.296/drivers/irqchip/ |
D | irq-armada-370-xp.c | 229 static int armada_370_xp_msi_alloc(struct irq_domain *domain, unsigned int virq, in armada_370_xp_msi_alloc() argument 243 irq_domain_set_info(domain, virq + i, hwirq + i, in armada_370_xp_msi_alloc() 253 unsigned int virq, unsigned int nr_irqs) in armada_370_xp_msi_free() argument 255 struct irq_data *d = irq_domain_get_irq_data(domain, virq); in armada_370_xp_msi_free() 347 unsigned int virq, irq_hw_number_t hw) in armada_370_xp_mpic_irq_map() argument 349 armada_370_xp_irq_mask(irq_get_irq_data(virq)); in armada_370_xp_mpic_irq_map() 355 irq_set_status_flags(virq, IRQ_LEVEL); in armada_370_xp_mpic_irq_map() 358 irq_set_percpu_devid(virq); in armada_370_xp_mpic_irq_map() 359 irq_set_chip_and_handler(virq, &armada_370_xp_irq_chip, in armada_370_xp_mpic_irq_map() 362 irq_set_chip_and_handler(virq, &armada_370_xp_irq_chip, in armada_370_xp_mpic_irq_map() [all …]
|
D | irq-mips-gic.c | 150 unsigned int intr, virq; in gic_handle_shared_int() local 167 virq = irq_linear_revmap(gic_irq_domain, in gic_handle_shared_int() 170 generic_handle_irq(virq); in gic_handle_shared_int() 172 do_IRQ(virq); in gic_handle_shared_int() 310 unsigned int intr, virq; in gic_handle_local_int() local 318 virq = irq_linear_revmap(gic_irq_domain, in gic_handle_local_int() 321 generic_handle_irq(virq); in gic_handle_local_int() 323 do_IRQ(virq); in gic_handle_local_int() 428 static int gic_shared_irq_domain_map(struct irq_domain *d, unsigned int virq, in gic_shared_irq_domain_map() argument 435 data = irq_get_irq_data(virq); in gic_shared_irq_domain_map() [all …]
|
D | irq-keystone.c | 92 int src, virq; in keystone_irq_handler() local 107 virq = irq_find_mapping(kirq->irqd, src); in keystone_irq_handler() 109 src, virq); in keystone_irq_handler() 110 if (!virq) in keystone_irq_handler() 112 src, virq); in keystone_irq_handler() 114 generic_handle_irq(virq); in keystone_irq_handler() 124 static int keystone_irq_map(struct irq_domain *h, unsigned int virq, in keystone_irq_map() argument 129 irq_set_chip_data(virq, kirq); in keystone_irq_map() 130 irq_set_chip_and_handler(virq, &kirq->chip, handle_level_irq); in keystone_irq_map() 131 irq_set_probe(virq); in keystone_irq_map()
|
D | irq-alpine-msi.c | 120 unsigned int virq, int sgi) in alpine_msix_gic_domain_alloc() argument 135 ret = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in alpine_msix_gic_domain_alloc() 139 d = irq_domain_get_irq_data(domain->parent, virq); in alpine_msix_gic_domain_alloc() 146 unsigned int virq, in alpine_msix_middle_domain_alloc() argument 157 err = alpine_msix_gic_domain_alloc(domain, virq + i, sgi + i); in alpine_msix_middle_domain_alloc() 161 irq_domain_set_hwirq_and_chip(domain, virq + i, sgi + i, in alpine_msix_middle_domain_alloc() 168 irq_domain_free_irqs_parent(domain, virq, i - 1); in alpine_msix_middle_domain_alloc() 174 unsigned int virq, in alpine_msix_middle_domain_free() argument 177 struct irq_data *d = irq_domain_get_irq_data(domain, virq); in alpine_msix_middle_domain_free() 180 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in alpine_msix_middle_domain_free()
|
D | irq-mips-cpu.c | 134 unsigned int virq; in plat_irq_dispatch() local 146 virq = irq_linear_revmap(ipi_domain, irq); in plat_irq_dispatch() 148 virq = irq_linear_revmap(irq_domain, irq); in plat_irq_dispatch() 149 do_IRQ(virq); in plat_irq_dispatch() 185 static int mips_cpu_ipi_alloc(struct irq_domain *domain, unsigned int virq, in mips_cpu_ipi_alloc() argument 198 ret = irq_domain_set_hwirq_and_chip(domain, virq + i, hwirq, in mips_cpu_ipi_alloc() 204 ret = irq_domain_set_hwirq_and_chip(domain->parent, virq + i, hwirq, in mips_cpu_ipi_alloc() 211 ret = irq_set_irq_type(virq + i, IRQ_TYPE_LEVEL_HIGH); in mips_cpu_ipi_alloc()
|
D | irq-gic-v3-mbi.c | 42 unsigned int virq, in mbi_irq_gic_domain_alloc() argument 67 err = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in mbi_irq_gic_domain_alloc() 71 d = irq_domain_get_irq_data(domain->parent, virq); in mbi_irq_gic_domain_alloc() 84 static int mbi_irq_domain_alloc(struct irq_domain *domain, unsigned int virq, in mbi_irq_domain_alloc() argument 108 err = mbi_irq_gic_domain_alloc(domain, virq + i, hwirq + i); in mbi_irq_domain_alloc() 112 irq_domain_set_hwirq_and_chip(domain, virq + i, hwirq + i, in mbi_irq_domain_alloc() 119 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in mbi_irq_domain_alloc() 125 unsigned int virq, unsigned int nr_irqs) in mbi_irq_domain_free() argument 127 struct irq_data *d = irq_domain_get_irq_data(domain, virq); in mbi_irq_domain_free() 131 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in mbi_irq_domain_free()
|
D | irq-ls-scfg-msi.c | 140 unsigned int virq, in ls_scfg_msi_domain_irq_alloc() argument 160 irq_domain_set_info(domain, virq, pos, in ls_scfg_msi_domain_irq_alloc() 168 unsigned int virq, unsigned int nr_irqs) in ls_scfg_msi_domain_irq_free() argument 170 struct irq_data *d = irq_domain_get_irq_data(domain, virq); in ls_scfg_msi_domain_irq_free() 195 int pos, size, virq, hwirq; in ls_scfg_msi_irq_handler() local 207 virq = irq_find_mapping(msi_data->parent, hwirq); in ls_scfg_msi_irq_handler() 208 if (virq) in ls_scfg_msi_irq_handler() 209 generic_handle_irq(virq); in ls_scfg_msi_irq_handler() 243 int virq, i, hwirq; in ls_scfg_msi_setup_hwirq() local 245 virq = platform_get_irq(msi_data->pdev, index); in ls_scfg_msi_setup_hwirq() [all …]
|
D | irq-mvebu-icu.c | 139 mvebu_icu_irq_domain_alloc(struct irq_domain *domain, unsigned int virq, in mvebu_icu_irq_domain_alloc() argument 162 err = platform_msi_domain_alloc(domain, virq, nr_irqs); in mvebu_icu_irq_domain_alloc() 169 err = irq_set_irqchip_state(virq, IRQCHIP_STATE_PENDING, false); in mvebu_icu_irq_domain_alloc() 173 err = irq_domain_set_hwirq_and_chip(domain, virq, hwirq, in mvebu_icu_irq_domain_alloc() 183 platform_msi_domain_free(domain, virq, nr_irqs); in mvebu_icu_irq_domain_alloc() 190 mvebu_icu_irq_domain_free(struct irq_domain *domain, unsigned int virq, in mvebu_icu_irq_domain_free() argument 193 struct irq_data *d = irq_get_irq_data(virq); in mvebu_icu_irq_domain_free() 198 platform_msi_domain_free(domain, virq, nr_irqs); in mvebu_icu_irq_domain_free()
|
D | irq-eznps.c | 109 static int nps400_irq_map(struct irq_domain *d, unsigned int virq, in nps400_irq_map() argument 117 irq_set_percpu_devid(virq); in nps400_irq_map() 118 irq_set_chip_and_handler(virq, &nps400_irq_chip_percpu, in nps400_irq_map() 122 irq_set_chip_and_handler(virq, &nps400_irq_chip_fasteoi, in nps400_irq_map()
|
D | irq-mvebu-odmi.c | 78 static int odmi_irq_domain_alloc(struct irq_domain *domain, unsigned int virq, in odmi_irq_domain_alloc() argument 106 ret = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in odmi_irq_domain_alloc() 116 d = irq_domain_get_irq_data(domain->parent, virq); in odmi_irq_domain_alloc() 119 irq_domain_set_hwirq_and_chip(domain, virq, hwirq, in odmi_irq_domain_alloc() 126 unsigned int virq, unsigned int nr_irqs) in odmi_irq_domain_free() argument 128 struct irq_data *d = irq_domain_get_irq_data(domain, virq); in odmi_irq_domain_free() 135 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in odmi_irq_domain_free()
|
D | irq-mvebu-pic.c | 69 static int mvebu_pic_irq_map(struct irq_domain *domain, unsigned int virq, in mvebu_pic_irq_map() argument 74 irq_set_percpu_devid(virq); in mvebu_pic_irq_map() 75 irq_set_chip_data(virq, pic); in mvebu_pic_irq_map() 76 irq_set_chip_and_handler(virq, &pic->irq_chip, in mvebu_pic_irq_map() 78 irq_set_status_flags(virq, IRQ_LEVEL); in mvebu_pic_irq_map() 79 irq_set_probe(virq); in mvebu_pic_irq_map()
|
D | irq-lpc32xx.c | 156 static int lpc32xx_irq_domain_map(struct irq_domain *id, unsigned int virq, in lpc32xx_irq_domain_map() argument 161 irq_set_chip_data(virq, ic); in lpc32xx_irq_domain_map() 162 irq_set_chip_and_handler(virq, &ic->chip, handle_level_irq); in lpc32xx_irq_domain_map() 163 irq_set_status_flags(virq, IRQ_LEVEL); in lpc32xx_irq_domain_map() 164 irq_set_noprobe(virq); in lpc32xx_irq_domain_map() 169 static void lpc32xx_irq_domain_unmap(struct irq_domain *id, unsigned int virq) in lpc32xx_irq_domain_unmap() argument 171 irq_set_chip_and_handler(virq, NULL, NULL); in lpc32xx_irq_domain_unmap()
|
D | irq-ativic32.c | 40 static int ativic32_irq_domain_map(struct irq_domain *id, unsigned int virq, in ativic32_irq_domain_map() argument 48 irq_data = irq_get_irq_data(virq); in ativic32_irq_domain_map() 53 irq_set_chip_and_handler(virq, &ativic32_chip, handle_edge_irq); in ativic32_irq_domain_map() 56 irq_set_chip_and_handler(virq, &ativic32_chip, handle_level_irq); in ativic32_irq_domain_map()
|
D | irq-partition-percpu.c | 149 static int partition_domain_alloc(struct irq_domain *domain, unsigned int virq, in partition_domain_alloc() argument 168 irq_set_percpu_devid_partition(virq, &part->parts[hwirq].mask); in partition_domain_alloc() 169 irq_domain_set_info(domain, virq, hwirq, &partition_irq_chip, part, in partition_domain_alloc() 171 irq_set_status_flags(virq, IRQ_NOAUTOEN); in partition_domain_alloc() 176 static void partition_domain_free(struct irq_domain *domain, unsigned int virq, in partition_domain_free() argument 183 d = irq_domain_get_irq_data(domain, virq); in partition_domain_free() 184 irq_set_handler(virq, NULL); in partition_domain_free()
|
D | irq-mvebu-gicp.c | 80 static int gicp_irq_domain_alloc(struct irq_domain *domain, unsigned int virq, in gicp_irq_domain_alloc() argument 107 ret = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in gicp_irq_domain_alloc() 113 ret = irq_domain_set_hwirq_and_chip(domain, virq, hwirq, in gicp_irq_domain_alloc() 121 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in gicp_irq_domain_alloc() 130 unsigned int virq, unsigned int nr_irqs) in gicp_irq_domain_free() argument 133 struct irq_data *d = irq_domain_get_irq_data(domain, virq); in gicp_irq_domain_free() 140 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in gicp_irq_domain_free()
|
D | irq-meson-gpio.c | 263 unsigned int virq, in meson_gpio_irq_allocate_gic_irq() argument 275 return irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in meson_gpio_irq_allocate_gic_irq() 279 unsigned int virq, in meson_gpio_irq_domain_alloc() argument 301 ret = meson_gpio_irq_allocate_gic_irq(domain, virq, in meson_gpio_irq_domain_alloc() 309 irq_domain_set_hwirq_and_chip(domain, virq, hwirq, in meson_gpio_irq_domain_alloc() 316 unsigned int virq, in meson_gpio_irq_domain_free() argument 326 irq_domain_free_irqs_parent(domain, virq, 1); in meson_gpio_irq_domain_free() 328 irq_data = irq_domain_get_irq_data(domain, virq); in meson_gpio_irq_domain_free()
|
D | irq-gic-v2m.c | 126 unsigned int virq, in gicv2m_irq_gic_domain_alloc() argument 148 err = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in gicv2m_irq_gic_domain_alloc() 153 d = irq_domain_get_irq_data(domain->parent, virq); in gicv2m_irq_gic_domain_alloc() 167 static int gicv2m_irq_domain_alloc(struct irq_domain *domain, unsigned int virq, in gicv2m_irq_domain_alloc() argument 190 err = gicv2m_irq_gic_domain_alloc(domain, virq + i, hwirq + i); in gicv2m_irq_domain_alloc() 194 irq_domain_set_hwirq_and_chip(domain, virq + i, hwirq + i, in gicv2m_irq_domain_alloc() 201 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in gicv2m_irq_domain_alloc() 207 unsigned int virq, unsigned int nr_irqs) in gicv2m_irq_domain_free() argument 209 struct irq_data *d = irq_domain_get_irq_data(domain, virq); in gicv2m_irq_domain_free() 213 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in gicv2m_irq_domain_free()
|
/linux-4.19.296/include/linux/ |
D | irqdomain.h | 105 int (*map)(struct irq_domain *d, unsigned int virq, irq_hw_number_t hw); 106 void (*unmap)(struct irq_domain *d, unsigned int virq); 112 int (*alloc)(struct irq_domain *d, unsigned int virq, 114 void (*free)(struct irq_domain *d, unsigned int virq, 273 extern int irq_domain_alloc_descs(int virq, unsigned int nr_irqs, 384 extern void irq_dispose_mapping(unsigned int virq); 433 unsigned int virq); 434 extern void irq_domain_set_info(struct irq_domain *domain, unsigned int virq, 459 extern void irq_domain_free_irqs(unsigned int virq, unsigned int nr_irqs); 474 unsigned int virq, [all …]
|
/linux-4.19.296/drivers/misc/cxl/ |
D | irq.c | 230 unsigned int virq; in cxl_map_irq() local 234 virq = irq_create_mapping(NULL, hwirq); in cxl_map_irq() 235 if (!virq) { in cxl_map_irq() 241 cxl_ops->setup_irq(adapter, hwirq, virq); in cxl_map_irq() 243 pr_devel("hwirq %#lx mapped to virq %u\n", hwirq, virq); in cxl_map_irq() 245 result = request_irq(virq, handler, 0, name, cookie); in cxl_map_irq() 251 return virq; in cxl_map_irq() 254 void cxl_unmap_irq(unsigned int virq, void *cookie) in cxl_unmap_irq() argument 256 free_irq(virq, cookie); in cxl_unmap_irq() 266 int hwirq, virq; in cxl_register_one_irq() local [all …]
|
/linux-4.19.296/drivers/base/ |
D | platform-msi.c | 56 unsigned int virq, irq_hw_number_t hwirq, in platform_msi_init() argument 59 return irq_domain_set_hwirq_and_chip(domain, virq, hwirq, in platform_msi_init() 122 static int platform_msi_alloc_descs_with_irq(struct device *dev, int virq, in platform_msi_alloc_descs_with_irq() argument 143 desc->irq = virq ? virq + i : 0; in platform_msi_alloc_descs_with_irq() 365 void platform_msi_domain_free(struct irq_domain *domain, unsigned int virq, in platform_msi_domain_free() argument 373 if (!(desc->irq >= virq && desc->irq < (virq + nvec))) in platform_msi_domain_free() 394 int platform_msi_domain_alloc(struct irq_domain *domain, unsigned int virq, in platform_msi_domain_alloc() argument 400 err = platform_msi_alloc_descs_with_irq(data->dev, virq, nr_irqs, data); in platform_msi_domain_alloc() 405 virq, nr_irqs, &data->arg); in platform_msi_domain_alloc() 407 platform_msi_domain_free(domain, virq, nr_irqs); in platform_msi_domain_alloc()
|
/linux-4.19.296/drivers/pci/controller/ |
D | pcie-tango.c | 29 unsigned long status, base, virq, idx, pos = 0; in tango_msi_isr() local 38 virq = irq_find_mapping(pcie->dom, base + idx); in tango_msi_isr() 39 generic_handle_irq(virq); in tango_msi_isr() 135 static int tango_irq_domain_alloc(struct irq_domain *dom, unsigned int virq, in tango_irq_domain_alloc() argument 150 irq_domain_set_info(dom, virq, pos, &tango_chip, in tango_irq_domain_alloc() 156 static void tango_irq_domain_free(struct irq_domain *dom, unsigned int virq, in tango_irq_domain_free() argument 160 struct irq_data *d = irq_domain_get_irq_data(dom, virq); in tango_irq_domain_free() 244 int virq, offset; in tango_pcie_probe() local 275 virq = platform_get_irq(pdev, 1); in tango_pcie_probe() 276 if (virq <= 0) { in tango_pcie_probe() [all …]
|
D | pcie-altera-msi.c | 57 u32 virq; in altera_msi_isr() local 67 virq = irq_find_mapping(msi->inner_domain, bit); in altera_msi_isr() 68 if (virq) in altera_msi_isr() 69 generic_handle_irq(virq); in altera_msi_isr() 115 static int altera_irq_domain_alloc(struct irq_domain *domain, unsigned int virq, in altera_irq_domain_alloc() argument 135 irq_domain_set_info(domain, virq, bit, &altera_msi_bottom_irq_chip, in altera_irq_domain_alloc() 147 unsigned int virq, unsigned int nr_irqs) in altera_irq_domain_free() argument 149 struct irq_data *d = irq_domain_get_irq_data(domain, virq); in altera_irq_domain_free()
|
D | pci-xgene-msi.c | 194 static int xgene_irq_domain_alloc(struct irq_domain *domain, unsigned int virq, in xgene_irq_domain_alloc() argument 214 irq_domain_set_info(domain, virq, msi_irq, in xgene_irq_domain_alloc() 222 unsigned int virq, unsigned int nr_irqs) in xgene_irq_domain_free() argument 224 struct irq_data *d = irq_domain_get_irq_data(domain, virq); in xgene_irq_domain_free() 235 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in xgene_irq_domain_free() 294 unsigned int virq; in xgene_msi_isr() local 333 virq = irq_find_mapping(xgene_msi->inner_domain, hw_irq); in xgene_msi_isr() 334 WARN_ON(!virq); in xgene_msi_isr() 335 if (virq != 0) in xgene_msi_isr() 336 generic_handle_irq(virq); in xgene_msi_isr()
|