Home
last modified time | relevance | path

Searched full:irqs (Results 1 – 25 of 1980) sorted by relevance

12345678910>>...80

/Linux-v6.1/drivers/vfio/platform/
Dvfio_platform_irq.c49 if (!(vdev->irqs[index].flags & VFIO_IRQ_INFO_MASKABLE)) in vfio_platform_set_irq_mask()
56 return vfio_virqfd_enable((void *) &vdev->irqs[index], in vfio_platform_set_irq_mask()
59 &vdev->irqs[index].mask, fd); in vfio_platform_set_irq_mask()
61 vfio_virqfd_disable(&vdev->irqs[index].mask); in vfio_platform_set_irq_mask()
66 vfio_platform_mask(&vdev->irqs[index]); in vfio_platform_set_irq_mask()
72 vfio_platform_mask(&vdev->irqs[index]); in vfio_platform_set_irq_mask()
109 if (!(vdev->irqs[index].flags & VFIO_IRQ_INFO_MASKABLE)) in vfio_platform_set_irq_unmask()
116 return vfio_virqfd_enable((void *) &vdev->irqs[index], in vfio_platform_set_irq_unmask()
119 &vdev->irqs[index].unmask, in vfio_platform_set_irq_unmask()
122 vfio_virqfd_disable(&vdev->irqs[index].unmask); in vfio_platform_set_irq_unmask()
[all …]
/Linux-v6.1/drivers/net/ethernet/mellanox/mlx5/core/
Dirq_affinity.c18 /* Gets the least loaded CPU. e.g.: the CPU with least IRQs bound to it */
26 /* CPU has zero IRQs on it. No need to search any more CPUs. */ in cpu_get_least_loaded()
57 err = xa_alloc(&pool->irqs, &irq_index, NULL, pool->xa_num_irqs, GFP_KERNEL); in irq_pool_request_irq()
80 * If pool is sf_ctrl_pool, then all IRQs have the same mask, so any IRQ will
94 xa_for_each_range(&pool->irqs, index, iter, start, end) { in irq_pool_find_least_loaded()
99 /* skip IRQs with a mask which is not subset of req_mask */ in irq_pool_find_least_loaded()
161 void mlx5_irq_affinity_irqs_release(struct mlx5_core_dev *dev, struct mlx5_irq **irqs, in mlx5_irq_affinity_irqs_release() argument
168 int cpu = cpumask_first(mlx5_irq_get_affinity_mask(irqs[i])); in mlx5_irq_affinity_irqs_release()
171 mlx5_irq_get_index(irqs[i]))); in mlx5_irq_affinity_irqs_release()
172 if (mlx5_irq_put(irqs[i])) in mlx5_irq_affinity_irqs_release()
[all …]
Dpci_irq.c130 xa_erase(&pool->irqs, irq->index); in irq_release()
245 err = xa_err(xa_store(&pool->irqs, irq->index, irq, GFP_KERNEL)); in mlx5_irq_alloc()
307 irq = xa_load(&pool->irqs, vecidx); in irq_pool_request_vector()
336 /* In some configs, there won't be a pool of SFs IRQs. Hence, returning in mlx5_irq_pool_get()
337 * the PF IRQs pool in case the SF pool doesn't exist. in mlx5_irq_pool_get()
350 /* In some configs, there won't be a pool of SFs IRQs. Hence, returning in ctrl_irq_pool_get()
351 * the PF IRQs pool in case the SF pool doesn't exist. in ctrl_irq_pool_get()
357 * mlx5_irqs_release - release one or more IRQs back to the system.
358 * @irqs: IRQs to be released.
359 * @nirqs: number of IRQs to be released.
[all …]
Dmlx5_irq.h30 struct mlx5_irq **irqs);
31 void mlx5_irqs_release_vectors(struct mlx5_irq **irqs, int nirqs);
40 struct mlx5_irq **irqs);
43 void mlx5_irq_affinity_irqs_release(struct mlx5_core_dev *dev, struct mlx5_irq **irqs,
47 struct mlx5_irq **irqs) in mlx5_irq_affinity_irqs_request_auto() argument
59 struct mlx5_irq **irqs, int num_irqs) {} in mlx5_irq_affinity_irqs_release() argument
/Linux-v6.1/Documentation/devicetree/bindings/arm/omap/
Dcrossbar.txt13 - ti,max-irqs: Total number of irqs available at the parent interrupt controller.
17 - ti,irqs-reserved: List of the reserved irq lines that are not muxed using
23 - ti,irqs-skip: This is similar to "ti,irqs-reserved", but these are for
24 SOC-specific hard-wiring of those irqs which unexpectedly bypasses the
25 crossbar. These irqs have a crossbar register, but still cannot be used.
27 - ti,irqs-safe-map: integer which maps to a safe configuration to use
34 ti,max-irqs = <160>;
37 ti,irqs-reserved = <0 1 2 3 5 6 131 132>;
38 ti,irqs-skip = <10 133 139 140>;
/Linux-v6.1/arch/powerpc/platforms/powernv/
Dpci-cxl.c63 void pnv_cxl_release_hwirq_ranges(struct cxl_irq_ranges *irqs, in pnv_cxl_release_hwirq_ranges() argument
71 if (!irqs->range[i]) in pnv_cxl_release_hwirq_ranges()
74 i, irqs->offset[i], in pnv_cxl_release_hwirq_ranges()
75 irqs->range[i]); in pnv_cxl_release_hwirq_ranges()
76 hwirq = irqs->offset[i] - phb->msi_base; in pnv_cxl_release_hwirq_ranges()
78 irqs->range[i]); in pnv_cxl_release_hwirq_ranges()
83 int pnv_cxl_alloc_hwirq_ranges(struct cxl_irq_ranges *irqs, in pnv_cxl_alloc_hwirq_ranges() argument
90 memset(irqs, 0, sizeof(struct cxl_irq_ranges)); in pnv_cxl_alloc_hwirq_ranges()
104 irqs->offset[i] = phb->msi_base + hwirq; in pnv_cxl_alloc_hwirq_ranges()
105 irqs->range[i] = try; in pnv_cxl_alloc_hwirq_ranges()
[all …]
/Linux-v6.1/drivers/misc/
Dhi6421v600-irq.c3 * Device driver for irqs in HISI PMIC IC
24 unsigned int *irqs; member
53 * IRQ number for the power key button and mask for both UP and DOWN IRQs
62 * registers are used by the irqs.
69 * The IRQs are mapped as:
109 /* Mark pending IRQs as handled */ in hi6421v600_irq_handler()
117 * If both powerkey down and up IRQs are received, in hi6421v600_irq_handler()
120 generic_handle_irq_safe(priv->irqs[POWERKEY_DOWN]); in hi6421v600_irq_handler()
121 generic_handle_irq_safe(priv->irqs[POWERKEY_UP]); in hi6421v600_irq_handler()
129 generic_handle_irq_safe(priv->irqs[offset + i * BITS_PER_BYTE]); in hi6421v600_irq_handler()
[all …]
/Linux-v6.1/drivers/crypto/qat/qat_common/
Dadf_isr.c158 struct adf_irq *irqs = pci_dev_info->msix_entries.irqs; in adf_free_irqs() local
165 if (irqs[i].enabled) { in adf_free_irqs()
173 if (irqs[i].enabled) { in adf_free_irqs()
183 struct adf_irq *irqs = pci_dev_info->msix_entries.irqs; in adf_request_irqs() local
195 name = irqs[i].name; in adf_request_irqs()
218 irqs[i].enabled = true; in adf_request_irqs()
223 name = irqs[i].name; in adf_request_irqs()
240 irqs[i].enabled = true; in adf_request_irqs()
251 struct adf_irq *irqs; in adf_isr_alloc_msix_vectors_data() local
257 irqs = kzalloc_node(msix_num_entries * sizeof(*irqs), in adf_isr_alloc_msix_vectors_data()
[all …]
/Linux-v6.1/drivers/bus/fsl-mc/
Dfsl-mc-allocator.c341 * ID. A block of IRQs is pre-allocated and maintained in a pool
347 * It allocates a block of IRQs from the GIC-ITS.
409 * It frees the IRQs that were allocated to the pool, back to the GIC-ITS.
435 * Allocate the IRQs required by a given fsl-mc device.
443 struct fsl_mc_device_irq **irqs = NULL; in fsl_mc_allocate_irqs() local
447 if (mc_dev->irqs) in fsl_mc_allocate_irqs()
465 "Not able to allocate %u irqs for device\n", irq_count); in fsl_mc_allocate_irqs()
469 irqs = devm_kcalloc(&mc_dev->dev, irq_count, sizeof(irqs[0]), in fsl_mc_allocate_irqs()
471 if (!irqs) in fsl_mc_allocate_irqs()
482 irqs[i] = to_fsl_mc_irq(resource); in fsl_mc_allocate_irqs()
[all …]
/Linux-v6.1/kernel/irq/
Dtimings.c382 static u64 __irq_timings_next_event(struct irqt_stat *irqs, int irq, u64 now) in __irq_timings_next_event() argument
386 if ((now - irqs->last_ts) >= NSEC_PER_SEC) { in __irq_timings_next_event()
387 irqs->count = irqs->last_ts = 0; in __irq_timings_next_event()
396 period_max = irqs->count > (3 * PREDICTION_PERIOD_MAX) ? in __irq_timings_next_event()
397 PREDICTION_PERIOD_MAX : irqs->count / 3; in __irq_timings_next_event()
409 count = irqs->count < IRQ_TIMINGS_SIZE ? in __irq_timings_next_event()
410 irqs->count : IRQ_TIMINGS_SIZE; in __irq_timings_next_event()
412 start = irqs->count < IRQ_TIMINGS_SIZE ? in __irq_timings_next_event()
413 0 : (irqs->count & IRQ_TIMINGS_MASK); in __irq_timings_next_event()
424 irqs->timings[i] = irqs->circ_timings[index]; in __irq_timings_next_event()
[all …]
/Linux-v6.1/drivers/gpio/
Dgpio-davinci.c65 int irqs[MAX_INT_PER_BANK]; member
242 chips->irqs[i] = platform_get_irq(pdev, i); in davinci_gpio_probe()
243 if (chips->irqs[i] < 0) in davinci_gpio_probe()
244 return dev_err_probe(dev, chips->irqs[i], "IRQ not populated\n"); in davinci_gpio_probe()
283 * We expect irqs will normally be set up as input pins, but they can also be
358 /* ack any irqs */ in gpio_irq_handler()
396 * NOTE: we assume for now that only irqs in the first gpio_chip in gpio_to_irq_unbanked()
397 * can provide direct-mapped IRQs to AINTC (up to 32 GPIOs). in gpio_to_irq_unbanked()
400 return d->irqs[offset]; in gpio_to_irq_unbanked()
414 if (data->irq == d->irqs[i]) in gpio_irq_type_unbanked()
[all …]
Dgpio-reg.c20 const int *irqs; member
102 int irq = r->irqs[offset]; in gpio_reg_to_irq()
120 * @irqs: array of %num ints describing the interrupt mapping for each
133 const char *const *names, struct irq_domain *irqdom, const int *irqs) in gpio_reg_init() argument
155 if (irqs) in gpio_reg_init()
163 r->irqs = irqs; in gpio_reg_init()
/Linux-v6.1/drivers/irqchip/
Dirq-bcm6345-l1.c19 * 0x1000_0028: CPU0_W0_STATUS IRQs 31-63
20 * 0x1000_002c: CPU0_W1_STATUS IRQs 0-31
23 * 0x1000_0038: CPU1_W0_STATUS IRQs 31-63
24 * 0x1000_003c: CPU1_W1_STATUS IRQs 0-31
31 * 0x1000_0030: CPU0_W0_STATUS IRQs 96-127
32 * 0x1000_0034: CPU0_W1_STATUS IRQs 64-95
33 * 0x1000_0038: CPU0_W2_STATUS IRQs 32-63
34 * 0x1000_003c: CPU0_W3_STATUS IRQs 0-31
39 * 0x1000_0050: CPU1_W0_STATUS IRQs 96-127
40 * 0x1000_0054: CPU1_W1_STATUS IRQs 64-95
[all …]
Dirq-nvic.c33 * Each bank handles 32 irqs. Only the 16th (= last) bank handles only
34 * 16 irqs.
76 unsigned int irqs, i, ret, numbanks; in nvic_of_init() local
88 irqs = numbanks * 32; in nvic_of_init()
89 if (irqs > NVIC_MAX_IRQ) in nvic_of_init()
90 irqs = NVIC_MAX_IRQ; in nvic_of_init()
93 irq_domain_add_linear(node, irqs, &nvic_irq_domain_ops, NULL); in nvic_of_init()
130 for (i = 0; i < irqs; i += 4) in nvic_of_init()
Dirq-crossbar.c144 * @nr_irqs: number of irqs to free
219 of_property_read_u32(node, "ti,max-irqs", &max); in crossbar_of_init()
221 pr_err("missing 'ti,max-irqs' property\n"); in crossbar_of_init()
234 /* Get and mark reserved irqs */ in crossbar_of_init()
235 irqsr = of_get_property(node, "ti,irqs-reserved", &size); in crossbar_of_init()
241 "ti,irqs-reserved", in crossbar_of_init()
252 /* Skip irqs hardwired to bypass the crossbar */ in crossbar_of_init()
253 irqsr = of_get_property(node, "ti,irqs-skip", &size); in crossbar_of_init()
259 "ti,irqs-skip", in crossbar_of_init()
296 * reserved irqs. so find and store the offsets once. in crossbar_of_init()
[all …]
Dirq-ingenic-tcu.c96 int ret, irqs; in ingenic_tcu_irq_init() local
108 irqs = of_property_count_elems_of_size(np, "interrupts", sizeof(u32)); in ingenic_tcu_irq_init()
109 if (irqs < 0 || irqs > ARRAY_SIZE(tcu->parent_irqs)) { in ingenic_tcu_irq_init()
115 tcu->nb_parent_irqs = irqs; in ingenic_tcu_irq_init()
146 /* Mask all IRQs by default */ in ingenic_tcu_irq_init()
159 for (i = 0; i < irqs; i++) { in ingenic_tcu_irq_init()
/Linux-v6.1/drivers/pci/pcie/
Dportdrv_core.c96 * @irqs: Array of interrupt vectors to populate
101 static int pcie_port_enable_irq_vec(struct pci_dev *dev, int *irqs, int mask) in pcie_port_enable_irq_vec() argument
143 irqs[PCIE_PORT_SERVICE_PME_SHIFT] = pcie_irq; in pcie_port_enable_irq_vec()
144 irqs[PCIE_PORT_SERVICE_HP_SHIFT] = pcie_irq; in pcie_port_enable_irq_vec()
145 irqs[PCIE_PORT_SERVICE_BWNOTIF_SHIFT] = pcie_irq; in pcie_port_enable_irq_vec()
149 irqs[PCIE_PORT_SERVICE_AER_SHIFT] = pci_irq_vector(dev, aer); in pcie_port_enable_irq_vec()
152 irqs[PCIE_PORT_SERVICE_DPC_SHIFT] = pci_irq_vector(dev, dpc); in pcie_port_enable_irq_vec()
158 * pcie_init_service_irqs - initialize irqs for PCI Express port services
160 * @irqs: Array of irqs to populate
165 static int pcie_init_service_irqs(struct pci_dev *dev, int *irqs, int mask) in pcie_init_service_irqs() argument
[all …]
/Linux-v6.1/drivers/pci/controller/
Dvmd.c96 * struct vmd_irq_list - list of driver requested IRQs mapping to a VMD vector
99 * @count: number of child IRQs assigned to this vector; used to track
117 struct vmd_irq_list *irqs; member
135 struct vmd_irq_list *irqs) in index_from_irqs() argument
137 return irqs - vmd->irqs; in index_from_irqs()
141 * Drivers managing a device in a VMD domain allocate their own IRQs as before,
226 return &vmd->irqs[vmd->first_vec]; in vmd_next_irq()
236 return &vmd->irqs[vmd->first_vec]; in vmd_next_irq()
242 if (vmd->irqs[i].count < vmd->irqs[best].count) in vmd_next_irq()
244 vmd->irqs[best].count++; in vmd_next_irq()
[all …]
/Linux-v6.1/drivers/staging/media/atomisp/pci/
Dgp_timer_defs.h28 …IVE_GP_TIMER_IRQ_TIMER_SELECT_REG_IDX(irq, timers, irqs) (HIVE_GP_TIMER_IRQ_TRIGGER_VALUE_REG_IDX( argument
29 …GP_TIMER_IRQ_ENABLE_REG_IDX(irq, timers, irqs) (HIVE_GP_TIMER_IRQ_TIMER_SELECT_REG_IDX(irqs,… argument
/Linux-v6.1/Documentation/devicetree/bindings/interrupt-controller/
Dst,sti-irq-syscfg.txt1 STMicroelectronics STi System Configuration Controlled IRQs
5 and PL310 L2 Cache IRQs are controlled using System Configuration registers.
15 - st,irq-device : Array of IRQs to enable - should be 2 in length
19 - st,invert-ext : External IRQs can be inverted at will. This property inverts
20 these IRQs using bitwise logic. A number of defines have been
/Linux-v6.1/drivers/power/supply/
Daxp20x_ac_power.c49 unsigned int irqs[]; member
294 * As nested threaded IRQs are not automatically disabled during in axp20x_ac_power_suspend()
295 * suspend, we must explicitly disable the remainder of the IRQs. in axp20x_ac_power_suspend()
298 enable_irq_wake(power->irqs[i++]); in axp20x_ac_power_suspend()
300 disable_irq(power->irqs[i++]); in axp20x_ac_power_suspend()
311 disable_irq_wake(power->irqs[i++]); in axp20x_ac_power_resume()
313 enable_irq(power->irqs[i++]); in axp20x_ac_power_resume()
341 struct_size(power, irqs, axp_data->num_irq_names), in axp20x_ac_power_probe()
377 /* Request irqs after registering, as irqs may trigger immediately */ in axp20x_ac_power_probe()
383 power->irqs[i] = regmap_irq_get_virq(axp20x->regmap_irqc, irq); in axp20x_ac_power_probe()
[all …]
/Linux-v6.1/drivers/pcmcia/
Dsa1111_generic.c141 int i, ret = 0, irqs[NUM_IRQS]; in sa1111_pcmcia_add() local
148 irqs[i] = sa1111_get_irq(dev, i); in sa1111_pcmcia_add()
149 if (irqs[i] <= 0) in sa1111_pcmcia_add()
150 return irqs[i] ? : -ENXIO; in sa1111_pcmcia_add()
166 s->soc.socket.pci_irq = irqs[IDX_IRQ_S1_READY_NINT]; in sa1111_pcmcia_add()
167 s->soc.stat[SOC_STAT_CD].irq = irqs[IDX_IRQ_S1_CD_VALID]; in sa1111_pcmcia_add()
169 s->soc.stat[SOC_STAT_BVD1].irq = irqs[IDX_IRQ_S1_BVD1_STSCHG]; in sa1111_pcmcia_add()
172 s->soc.socket.pci_irq = irqs[IDX_IRQ_S0_READY_NINT]; in sa1111_pcmcia_add()
173 s->soc.stat[SOC_STAT_CD].irq = irqs[IDX_IRQ_S0_CD_VALID]; in sa1111_pcmcia_add()
175 s->soc.stat[SOC_STAT_BVD1].irq = irqs[IDX_IRQ_S0_BVD1_STSCHG]; in sa1111_pcmcia_add()
/Linux-v6.1/Documentation/power/
Dsuspend-and-interrupts.rst9 Suspending and Resuming Device IRQs
12 Device interrupt request lines (IRQs) are generally disabled during system
21 interrupt handlers for shared IRQs that device drivers implementing them were
29 Device IRQs are re-enabled during system resume, right before the "early" phase
91 not executed for system wakeup IRQs. They are only executed for IRQF_NO_SUSPEND
92 IRQs at that time, but those IRQs should not be configured for system wakeup
126 Second, both enable_irq_wake() and IRQF_NO_SUSPEND apply to entire IRQs and not
133 must be able to discern spurious IRQs from genuine wakeup events (signalling
/Linux-v6.1/arch/arc/kernel/
Dintc-arcv2.c17 unsigned int pad:3, firq:1, prio:4, exts:8, irqs:8, ver:8; member
19 unsigned int ver:8, irqs:8, exts:8, prio:4, firq:1, pad:3;
61 * Linux by default uses lower prio 1 for most irqs, reserving 0 for in arc_init_IRQ()
79 for (i = NR_EXCEPTIONS; i < irq_bcr.irqs + NR_EXCEPTIONS; i++) { in arc_init_IRQ()
84 * Only mask cpu private IRQs here. in arc_init_IRQ()
136 * core intc IRQs [16, 23]: in arcv2_irq_map()
168 nr_cpu_irqs = irq_bcr.irqs + NR_EXCEPTIONS; in init_onchip_IRQ()
/Linux-v6.1/arch/powerpc/platforms/ps3/
Dspu.c246 0, &spu->irqs[0]); in setup_interrupts()
252 1, &spu->irqs[1]); in setup_interrupts()
258 2, &spu->irqs[2]); in setup_interrupts()
266 ps3_spe_irq_destroy(spu->irqs[1]); in setup_interrupts()
268 ps3_spe_irq_destroy(spu->irqs[0]); in setup_interrupts()
270 spu->irqs[0] = spu->irqs[1] = spu->irqs[2] = 0; in setup_interrupts()
316 ps3_spe_irq_destroy(spu->irqs[2]); in ps3_destroy_spu()
317 ps3_spe_irq_destroy(spu->irqs[1]); in ps3_destroy_spu()
318 ps3_spe_irq_destroy(spu->irqs[0]); in ps3_destroy_spu()
320 spu->irqs[0] = spu->irqs[1] = spu->irqs[2] = 0; in ps3_destroy_spu()

12345678910>>...80