/Linux-v4.19/arch/powerpc/platforms/ps3/ |
D | interrupt.c | 181 unsigned int *virq) in ps3_virq_setup() argument 193 *virq = irq_create_mapping(NULL, outlet); in ps3_virq_setup() 195 if (!*virq) { in ps3_virq_setup() 203 outlet, cpu, *virq); in ps3_virq_setup() 205 result = irq_set_chip_data(*virq, pd); in ps3_virq_setup() 213 ps3_chip_mask(irq_get_irq_data(*virq)); in ps3_virq_setup() 218 irq_dispose_mapping(*virq); in ps3_virq_setup() 230 static int ps3_virq_destroy(unsigned int virq) in ps3_virq_destroy() argument 232 const struct ps3_private *pd = irq_get_chip_data(virq); in ps3_virq_destroy() 235 __LINE__, pd->ppe_id, pd->thread_id, virq); in ps3_virq_destroy() [all …]
|
/Linux-v4.19/kernel/irq/ |
D | irqdomain.c | 517 int irq_domain_associate(struct irq_domain *domain, unsigned int virq, in irq_domain_associate() argument 520 struct irq_data *irq_data = irq_get_irq_data(virq); in irq_domain_associate() 526 if (WARN(!irq_data, "error: virq%i is not allocated", virq)) in irq_domain_associate() 528 if (WARN(irq_data->domain, "error: virq%i is already associated", virq)) in irq_domain_associate() 535 ret = domain->ops->map(domain, virq, hwirq); in irq_domain_associate() 544 domain->name, hwirq, virq, ret); in irq_domain_associate() 561 irq_clear_status_flags(virq, IRQ_NOREQUEST); in irq_domain_associate() 596 unsigned int virq; in irq_create_direct_mapping() local 602 virq = irq_alloc_desc_from(1, of_node_to_nid(of_node)); in irq_create_direct_mapping() 603 if (!virq) { in irq_create_direct_mapping() [all …]
|
D | msi.c | 138 static int msi_domain_alloc(struct irq_domain *domain, unsigned int virq, in msi_domain_alloc() argument 150 ret = irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, arg); in msi_domain_alloc() 156 ret = ops->msi_init(domain, info, virq + i, hwirq + i, arg); in msi_domain_alloc() 160 ops->msi_free(domain, info, virq + i); in msi_domain_alloc() 162 irq_domain_free_irqs_top(domain, virq, nr_irqs); in msi_domain_alloc() 170 static void msi_domain_free(struct irq_domain *domain, unsigned int virq, in msi_domain_free() argument 178 info->ops->msi_free(domain, info, virq + i); in msi_domain_free() 180 irq_domain_free_irqs_top(domain, virq, nr_irqs); in msi_domain_free() 217 unsigned int virq, irq_hw_number_t hwirq, in msi_domain_ops_init() argument 220 irq_domain_set_hwirq_and_chip(domain, virq, hwirq, info->chip, in msi_domain_ops_init() [all …]
|
D | ipi.c | 28 int virq, i; in irq_reserve_ipi() local 78 virq = irq_domain_alloc_descs(-1, nr_irqs, 0, NUMA_NO_NODE, NULL); in irq_reserve_ipi() 79 if (virq <= 0) { in irq_reserve_ipi() 84 virq = __irq_domain_alloc_irqs(domain, virq, nr_irqs, NUMA_NO_NODE, in irq_reserve_ipi() 87 if (virq <= 0) { in irq_reserve_ipi() 93 data = irq_get_irq_data(virq + i); in irq_reserve_ipi() 96 irq_set_status_flags(virq + i, IRQ_NO_BALANCING); in irq_reserve_ipi() 98 return virq; in irq_reserve_ipi() 101 irq_free_descs(virq, nr_irqs); in irq_reserve_ipi() 307 int ipi_send_single(unsigned int virq, unsigned int cpu) in ipi_send_single() argument [all …]
|
/Linux-v4.19/drivers/mfd/ |
D | arizona-irq.c | 127 irq_find_mapping(arizona->virq, 0)); in arizona_irq_thread() 137 handle_nested_irq(irq_find_mapping(arizona->virq, 1)); in arizona_irq_thread() 189 static int arizona_irq_map(struct irq_domain *h, unsigned int virq, in arizona_irq_map() argument 194 irq_set_chip_data(virq, data); in arizona_irq_map() 195 irq_set_lockdep_class(virq, &arizona_irq_lock_class, in arizona_irq_map() 197 irq_set_chip_and_handler(virq, &arizona_irq_chip, handle_simple_irq); in arizona_irq_map() 198 irq_set_nested_thread(virq, 1); in arizona_irq_map() 199 irq_set_noprobe(virq); in arizona_irq_map() 215 unsigned int virq; in arizona_irq_init() local 318 arizona->virq = irq_domain_add_linear(NULL, 2, &arizona_domain_ops, in arizona_irq_init() [all …]
|
/Linux-v4.19/arch/powerpc/platforms/cell/ |
D | spider-pic.c | 171 static int spider_host_map(struct irq_domain *h, unsigned int virq, in spider_host_map() argument 174 irq_set_chip_data(virq, h->host_data); in spider_host_map() 175 irq_set_chip_and_handler(virq, &spider_pic, handle_level_irq); in spider_host_map() 178 irq_set_irq_type(virq, IRQ_TYPE_NONE); in spider_host_map() 206 unsigned int cs, virq; in spider_irq_cascade() local 210 virq = 0; in spider_irq_cascade() 212 virq = irq_linear_revmap(pic->host, cs); in spider_irq_cascade() 214 if (virq) in spider_irq_cascade() 215 generic_handle_irq(virq); in spider_irq_cascade() 230 unsigned int virq; in spider_find_cascade_and_node() local [all …]
|
D | axon_msi.c | 259 unsigned int virq, rc; in axon_msi_setup_msi_irqs() local 273 virq = irq_create_direct_mapping(msic->irq_domain); in axon_msi_setup_msi_irqs() 274 if (!virq) { in axon_msi_setup_msi_irqs() 279 dev_dbg(&dev->dev, "axon_msi: allocated virq 0x%x\n", virq); in axon_msi_setup_msi_irqs() 281 irq_set_msi_desc(virq, entry); in axon_msi_setup_msi_irqs() 282 msg.data = virq; in axon_msi_setup_msi_irqs() 283 pci_write_msi_msg(virq, &msg); in axon_msi_setup_msi_irqs() 311 static int msic_host_map(struct irq_domain *h, unsigned int virq, in msic_host_map() argument 314 irq_set_chip_data(virq, h->host_data); in msic_host_map() 315 irq_set_chip_and_handler(virq, &msic_irq_chip, handle_simple_irq); in msic_host_map() [all …]
|
D | interrupt.c | 150 unsigned int virq; in iic_get_irq() local 157 virq = irq_linear_revmap(iic_host, iic_pending_to_hwnum(pending)); in iic_get_irq() 158 if (!virq) in iic_get_irq() 162 return virq; in iic_get_irq() 192 int virq; in iic_request_ipi() local 194 virq = irq_create_mapping(iic_host, iic_msg_to_irq(msg)); in iic_request_ipi() 195 if (!virq) { in iic_request_ipi() 205 if (smp_request_message_ipi(virq, msg)) in iic_request_ipi() 206 irq_dispose_mapping(virq); in iic_request_ipi() 227 static int iic_host_map(struct irq_domain *h, unsigned int virq, in iic_host_map() argument [all …]
|
/Linux-v4.19/arch/x86/platform/uv/ |
D | uv_irq.c | 75 static int uv_domain_alloc(struct irq_domain *domain, unsigned int virq, in uv_domain_alloc() argument 80 struct irq_data *irq_data = irq_domain_get_irq_data(domain, virq); in uv_domain_alloc() 91 ret = irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, arg); in uv_domain_alloc() 94 irq_set_status_flags(virq, IRQ_NO_BALANCING); in uv_domain_alloc() 96 irq_set_status_flags(virq, IRQ_MOVE_PCNTXT); in uv_domain_alloc() 100 irq_domain_set_info(domain, virq, virq, &uv_irq_chip, chip_data, in uv_domain_alloc() 109 static void uv_domain_free(struct irq_domain *domain, unsigned int virq, in uv_domain_free() argument 112 struct irq_data *irq_data = irq_domain_get_irq_data(domain, virq); in uv_domain_free() 116 irq_clear_status_flags(virq, IRQ_MOVE_PCNTXT); in uv_domain_free() 117 irq_clear_status_flags(virq, IRQ_NO_BALANCING); in uv_domain_free() [all …]
|
/Linux-v4.19/drivers/vlynq/ |
D | vlynq.c | 141 int virq; in vlynq_irq_unmask() local 145 virq = d->irq - dev->irq_start; in vlynq_irq_unmask() 146 val = readl(&dev->remote->int_device[virq >> 2]); in vlynq_irq_unmask() 147 val |= (VINT_ENABLE | virq) << VINT_OFFSET(virq); in vlynq_irq_unmask() 148 writel(val, &dev->remote->int_device[virq >> 2]); in vlynq_irq_unmask() 154 int virq; in vlynq_irq_mask() local 158 virq = d->irq - dev->irq_start; in vlynq_irq_mask() 159 val = readl(&dev->remote->int_device[virq >> 2]); in vlynq_irq_mask() 160 val &= ~(VINT_ENABLE << VINT_OFFSET(virq)); in vlynq_irq_mask() 161 writel(val, &dev->remote->int_device[virq >> 2]); in vlynq_irq_mask() [all …]
|
/Linux-v4.19/arch/powerpc/platforms/pasemi/ |
D | msi.c | 85 unsigned int virq; in pasemi_msi_setup_msi_irqs() local 111 virq = irq_create_mapping(msi_mpic->irqhost, hwirq); in pasemi_msi_setup_msi_irqs() 112 if (!virq) { in pasemi_msi_setup_msi_irqs() 124 mpic_set_vector(virq, 0); in pasemi_msi_setup_msi_irqs() 126 irq_set_msi_desc(virq, entry); in pasemi_msi_setup_msi_irqs() 127 irq_set_chip(virq, &mpic_pasemi_msi_chip); in pasemi_msi_setup_msi_irqs() 128 irq_set_irq_type(virq, IRQ_TYPE_EDGE_RISING); in pasemi_msi_setup_msi_irqs() 131 "addr 0x%x\n", virq, hwirq, msg.address_lo); in pasemi_msi_setup_msi_irqs() 137 pci_write_msi_msg(virq, &msg); in pasemi_msi_setup_msi_irqs()
|
/Linux-v4.19/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-v4.19/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 247 irq_domain_set_info(domain, virq + i, hwirq + i, in armada_370_xp_msi_alloc() 257 unsigned int virq, unsigned int nr_irqs) in armada_370_xp_msi_free() argument 259 struct irq_data *d = irq_domain_get_irq_data(domain, virq); in armada_370_xp_msi_free() 351 unsigned int virq, irq_hw_number_t hw) in armada_370_xp_mpic_irq_map() argument 353 armada_370_xp_irq_mask(irq_get_irq_data(virq)); in armada_370_xp_mpic_irq_map() 359 irq_set_status_flags(virq, IRQ_LEVEL); in armada_370_xp_mpic_irq_map() 362 irq_set_percpu_devid(virq); in armada_370_xp_mpic_irq_map() 363 irq_set_chip_and_handler(virq, &armada_370_xp_irq_chip, in armada_370_xp_mpic_irq_map() 366 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() 415 static int gic_shared_irq_domain_map(struct irq_domain *d, unsigned int virq, in gic_shared_irq_domain_map() argument 422 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() 169 irq_domain_free_irqs_parent(domain, virq, i); in alpine_msix_middle_domain_alloc() 175 unsigned int virq, in alpine_msix_middle_domain_free() argument 178 struct irq_data *d = irq_domain_get_irq_data(domain, virq); in alpine_msix_middle_domain_free() 181 irq_domain_free_irqs_parent(domain, virq, nr_irqs); in alpine_msix_middle_domain_free()
|
/Linux-v4.19/arch/powerpc/sysdev/ |
D | mpic_u3msi.c | 127 unsigned int virq; in u3msi_setup_msi_irqs() local 157 virq = irq_create_mapping(msi_mpic->irqhost, hwirq); in u3msi_setup_msi_irqs() 158 if (!virq) { in u3msi_setup_msi_irqs() 164 irq_set_msi_desc(virq, entry); in u3msi_setup_msi_irqs() 165 irq_set_chip(virq, &mpic_u3msi_chip); in u3msi_setup_msi_irqs() 166 irq_set_irq_type(virq, IRQ_TYPE_EDGE_RISING); in u3msi_setup_msi_irqs() 169 virq, hwirq, (unsigned long)addr); in u3msi_setup_msi_irqs() 172 virq, hwirq, (unsigned long)addr); in u3msi_setup_msi_irqs() 174 pci_write_msi_msg(virq, &msg); in u3msi_setup_msi_irqs()
|
D | fsl_msi.c | 54 int virq; member 77 cascade_virq = msi_data->cascade_array[srs]->virq; in fsl_msi_print_chip() 90 static int fsl_msi_host_map(struct irq_domain *h, unsigned int virq, in fsl_msi_host_map() argument 96 irq_set_status_flags(virq, IRQ_TYPE_EDGE_FALLING); in fsl_msi_host_map() 98 irq_set_chip_data(virq, msi_data); in fsl_msi_host_map() 99 irq_set_chip_and_handler(virq, chip, handle_edge_irq); in fsl_msi_host_map() 189 unsigned int virq; in fsl_setup_msi_irqs() local 251 virq = irq_create_mapping(msi_data->irqhost, hwirq); in fsl_setup_msi_irqs() 253 if (!virq) { in fsl_setup_msi_irqs() 260 irq_set_msi_desc(virq, entry); in fsl_setup_msi_irqs() [all …]
|
/Linux-v4.19/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-v4.19/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, 266 extern int irq_domain_alloc_descs(int virq, unsigned int nr_irqs, 377 extern void irq_dispose_mapping(unsigned int virq); 426 unsigned int virq); 427 extern void irq_domain_set_info(struct irq_domain *domain, unsigned int virq, 452 extern void irq_domain_free_irqs(unsigned int virq, unsigned int nr_irqs); 467 unsigned int virq, [all …]
|
/Linux-v4.19/arch/powerpc/include/asm/ |
D | ps3.h | 191 unsigned int *virq); 192 int ps3_irq_plug_destroy(unsigned int virq); 193 int ps3_event_receive_port_setup(enum ps3_cpu_binding cpu, unsigned int *virq); 194 int ps3_event_receive_port_destroy(unsigned int virq); 195 int ps3_send_event_locally(unsigned int virq); 198 unsigned int *virq); 199 int ps3_io_irq_destroy(unsigned int virq); 201 unsigned int *virq); 202 int ps3_vuart_irq_destroy(unsigned int virq); 204 unsigned int class, unsigned int *virq); [all …]
|
/Linux-v4.19/drivers/soc/fsl/qe/ |
D | qe_ic.c | 189 static inline struct qe_ic *qe_ic_from_irq(unsigned int virq) in qe_ic_from_irq() argument 191 return irq_get_chip_data(virq); in qe_ic_from_irq() 256 static int qe_ic_host_map(struct irq_domain *h, unsigned int virq, in qe_ic_host_map() argument 274 irq_set_chip_data(virq, qe_ic); in qe_ic_host_map() 275 irq_set_status_flags(virq, IRQ_LEVEL); in qe_ic_host_map() 277 irq_set_chip_and_handler(virq, chip, handle_level_irq); in qe_ic_host_map() 389 void qe_ic_set_highest_priority(unsigned int virq, int high) in qe_ic_set_highest_priority() argument 391 struct qe_ic *qe_ic = qe_ic_from_irq(virq); in qe_ic_set_highest_priority() 392 unsigned int src = virq_to_hw(virq); in qe_ic_set_highest_priority() 407 int qe_ic_set_priority(unsigned int virq, unsigned int priority) in qe_ic_set_priority() argument [all …]
|
/Linux-v4.19/drivers/platform/x86/ |
D | intel_bxtwc_tmu.c | 62 int ret, virq, irq; in bxt_wcove_tmu_probe() local 79 virq = regmap_irq_get_virq(regmap_irq_chip, irq); in bxt_wcove_tmu_probe() 80 if (virq < 0) { in bxt_wcove_tmu_probe() 83 return virq; in bxt_wcove_tmu_probe() 86 ret = devm_request_threaded_irq(&pdev->dev, virq, in bxt_wcove_tmu_probe() 91 ret, virq); in bxt_wcove_tmu_probe() 94 wctmu->irq = virq; in bxt_wcove_tmu_probe()
|
/Linux-v4.19/arch/powerpc/sysdev/xics/ |
D | xics-common.c | 189 unsigned int irq, virq; in xics_migrate_irqs_away() local 202 for_each_irq_desc(virq, desc) { in xics_migrate_irqs_away() 209 if (virq < NUM_ISA_INTERRUPTS) in xics_migrate_irqs_away() 247 virq, cpu); in xics_migrate_irqs_away() 251 irq_set_affinity(virq, cpu_all_mask); in xics_migrate_irqs_away() 283 int xics_get_irq_server(unsigned int virq, const struct cpumask *cpumask, in xics_get_irq_server() argument 335 static int xics_host_map(struct irq_domain *h, unsigned int virq, in xics_host_map() argument 340 pr_devel("xics: map virq %d, hwirq 0x%lx\n", virq, hw); in xics_host_map() 347 irq_clear_status_flags(virq, IRQ_LEVEL); in xics_host_map() 351 irq_set_chip_and_handler(virq, &xics_ipi_chip, in xics_host_map() [all …]
|