Home
last modified time | relevance | path

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

12345678910>>...151

/kernel/linux/linux-6.6/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 …]
/kernel/linux/linux-5.10/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 …]
/kernel/linux/linux-6.6/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>;
/kernel/linux/linux-5.10/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>;
/kernel/linux/linux-6.6/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 …]
/kernel/linux/linux-5.10/arch/powerpc/platforms/powernv/
Dpci-cxl.c62 void pnv_cxl_release_hwirq_ranges(struct cxl_irq_ranges *irqs, in pnv_cxl_release_hwirq_ranges() argument
70 if (!irqs->range[i]) in pnv_cxl_release_hwirq_ranges()
73 i, irqs->offset[i], in pnv_cxl_release_hwirq_ranges()
74 irqs->range[i]); in pnv_cxl_release_hwirq_ranges()
75 hwirq = irqs->offset[i] - phb->msi_base; in pnv_cxl_release_hwirq_ranges()
77 irqs->range[i]); in pnv_cxl_release_hwirq_ranges()
82 int pnv_cxl_alloc_hwirq_ranges(struct cxl_irq_ranges *irqs, in pnv_cxl_alloc_hwirq_ranges() argument
89 memset(irqs, 0, sizeof(struct cxl_irq_ranges)); in pnv_cxl_alloc_hwirq_ranges()
103 irqs->offset[i] = phb->msi_base + hwirq; in pnv_cxl_alloc_hwirq_ranges()
104 irqs->range[i] = try; in pnv_cxl_alloc_hwirq_ranges()
[all …]
/kernel/linux/linux-6.6/drivers/crypto/intel/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 …]
/kernel/linux/linux-6.6/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 …]
/kernel/linux/linux-6.6/drivers/bus/fsl-mc/
Dfsl-mc-allocator.c347 * ID. A block of IRQs is pre-allocated and maintained in a pool
353 * It allocates a block of IRQs from the GIC-ITS.
415 * It frees the IRQs that were allocated to the pool, back to the GIC-ITS.
441 * Allocate the IRQs required by a given fsl-mc device.
449 struct fsl_mc_device_irq **irqs = NULL; in fsl_mc_allocate_irqs() local
453 if (mc_dev->irqs) in fsl_mc_allocate_irqs()
471 "Not able to allocate %u irqs for device\n", irq_count); in fsl_mc_allocate_irqs()
475 irqs = devm_kcalloc(&mc_dev->dev, irq_count, sizeof(irqs[0]), in fsl_mc_allocate_irqs()
477 if (!irqs) in fsl_mc_allocate_irqs()
488 irqs[i] = to_fsl_mc_irq(resource); in fsl_mc_allocate_irqs()
[all …]
/kernel/linux/linux-5.10/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.
414 * It frees the IRQs that were allocated to the pool, back to the GIC-ITS.
440 * Allocate the IRQs required by a given fsl-mc device.
448 struct fsl_mc_device_irq **irqs = NULL; in fsl_mc_allocate_irqs() local
452 if (mc_dev->irqs) in fsl_mc_allocate_irqs()
470 "Not able to allocate %u irqs for device\n", irq_count); in fsl_mc_allocate_irqs()
474 irqs = devm_kcalloc(&mc_dev->dev, irq_count, sizeof(irqs[0]), in fsl_mc_allocate_irqs()
476 if (!irqs) in fsl_mc_allocate_irqs()
487 irqs[i] = to_fsl_mc_irq(resource); in fsl_mc_allocate_irqs()
[all …]
/kernel/linux/linux-6.6/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 …]
/kernel/linux/linux-5.10/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 …]
/kernel/linux/linux-5.10/drivers/gpio/
Dgpio-davinci.c64 int irqs[MAX_INT_PER_BANK]; member
239 chips->irqs[i] = platform_get_irq(pdev, i); in davinci_gpio_probe()
240 if (chips->irqs[i] < 0) in davinci_gpio_probe()
241 return dev_err_probe(dev, chips->irqs[i], "IRQ not populated\n"); in davinci_gpio_probe()
281 * We expect irqs will normally be set up as input pins, but they can also be
356 /* ack any irqs */ in gpio_irq_handler()
395 * NOTE: we assume for now that only irqs in the first gpio_chip in gpio_to_irq_unbanked()
396 * can provide direct-mapped IRQs to AINTC (up to 32 GPIOs). in gpio_to_irq_unbanked()
399 return d->irqs[offset]; in gpio_to_irq_unbanked()
413 if (data->irq == d->irqs[i]) in gpio_irq_type_unbanked()
[all …]
/kernel/linux/linux-6.6/drivers/gpio/
Dgpio-davinci.c63 int irqs[MAX_INT_PER_BANK]; member
229 dev_err(dev, "Too many IRQs!\n"); in davinci_gpio_probe()
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 chips->irqs[i]; in davinci_gpio_probe()
282 * We expect irqs will normally be set up as input pins, but they can also be
357 /* ack any irqs */ in gpio_irq_handler()
395 * NOTE: we assume for now that only irqs in the first gpio_chip in gpio_to_irq_unbanked()
396 * can provide direct-mapped IRQs to AINTC (up to 32 GPIOs). in gpio_to_irq_unbanked()
399 return d->irqs[offset]; in gpio_to_irq_unbanked()
[all …]
/kernel/linux/linux-5.10/drivers/irqchip/
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-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 …]
/kernel/linux/linux-6.6/drivers/irqchip/
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-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 …]
/kernel/linux/linux-5.10/drivers/pci/controller/
Dvmd.c81 * struct vmd_irq_list - list of driver requested IRQs mapping to a VMD vector
84 * @count: number of child IRQs assigned to this vector; used to track
100 struct vmd_irq_list *irqs; member
115 struct vmd_irq_list *irqs) in index_from_irqs() argument
117 return irqs - vmd->irqs; in index_from_irqs()
121 * Drivers managing a device in a VMD domain allocate their own IRQs as before,
206 return &vmd->irqs[0]; in vmd_next_irq()
216 return &vmd->irqs[0]; in vmd_next_irq()
221 if (vmd->irqs[i].count < vmd->irqs[best].count) in vmd_next_irq()
223 vmd->irqs[best].count++; in vmd_next_irq()
[all …]
/kernel/linux/linux-5.10/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 …]
/kernel/linux/linux-6.6/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
/kernel/linux/linux-5.10/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
/kernel/linux/linux-5.10/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
/kernel/linux/linux-6.6/drivers/power/supply/
Daxp20x_ac_power.c48 unsigned int irqs[]; member
293 * As nested threaded IRQs are not automatically disabled during in axp20x_ac_power_suspend()
294 * suspend, we must explicitly disable the remainder of the IRQs. in axp20x_ac_power_suspend()
297 enable_irq_wake(power->irqs[i++]); in axp20x_ac_power_suspend()
299 disable_irq(power->irqs[i++]); in axp20x_ac_power_suspend()
310 disable_irq_wake(power->irqs[i++]); in axp20x_ac_power_resume()
312 enable_irq(power->irqs[i++]); in axp20x_ac_power_resume()
340 struct_size(power, irqs, axp_data->num_irq_names), in axp20x_ac_power_probe()
376 /* Request irqs after registering, as irqs may trigger immediately */ in axp20x_ac_power_probe()
382 power->irqs[i] = regmap_irq_get_virq(axp20x->regmap_irqc, irq); in axp20x_ac_power_probe()
[all …]
/kernel/linux/linux-5.10/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()
385 power->irqs[i] = regmap_irq_get_virq(axp20x->regmap_irqc, irq); in axp20x_ac_power_probe()
[all …]

12345678910>>...151