Home
last modified time | relevance | path

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

12345678910>>...133

/kernel/linux/linux-4.19/kernel/irq/
Dtimings.c46 * @irqs: an irqt_stat struct pointer
106 static void irqs_update(struct irqt_stat *irqs, u64 ts) in irqs_update() argument
108 u64 old_ts = irqs->last_ts; in irqs_update()
117 irqs->last_ts = ts; in irqs_update()
138 memset(irqs, 0, sizeof(*irqs)); in irqs_update()
139 irqs->last_ts = ts; in irqs_update()
147 diff = interval - irqs->avg; in irqs_update()
152 irqs->nr_samples++; in irqs_update()
161 if (likely(irqs->nr_samples > 1)) in irqs_update()
162 variance = irqs->variance >> IRQ_TIMINGS_SHIFT; in irqs_update()
[all …]
Dirq_sim.c56 sim->irqs = kmalloc_array(num_irqs, sizeof(*sim->irqs), GFP_KERNEL); in irq_sim_init()
57 if (!sim->irqs) in irq_sim_init()
62 kfree(sim->irqs); in irq_sim_init()
67 sim->irqs[i].irqnum = sim->irq_base + i; in irq_sim_init()
68 sim->irqs[i].enabled = false; in irq_sim_init()
70 irq_set_chip_data(sim->irq_base + i, &sim->irqs[i]); in irq_sim_init()
93 kfree(sim->irqs); in irq_sim_fini()
145 if (sim->irqs[offset].enabled) { in irq_sim_fire()
161 return sim->irqs[offset].irqnum; in irq_sim_irqnum()
/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-4.19/drivers/vfio/platform/
Dvfio_platform_irq.c57 if (!(vdev->irqs[index].flags & VFIO_IRQ_INFO_MASKABLE)) in vfio_platform_set_irq_mask()
64 return vfio_virqfd_enable((void *) &vdev->irqs[index], in vfio_platform_set_irq_mask()
67 &vdev->irqs[index].mask, fd); in vfio_platform_set_irq_mask()
69 vfio_virqfd_disable(&vdev->irqs[index].mask); in vfio_platform_set_irq_mask()
74 vfio_platform_mask(&vdev->irqs[index]); in vfio_platform_set_irq_mask()
80 vfio_platform_mask(&vdev->irqs[index]); in vfio_platform_set_irq_mask()
117 if (!(vdev->irqs[index].flags & VFIO_IRQ_INFO_MASKABLE)) in vfio_platform_set_irq_unmask()
124 return vfio_virqfd_enable((void *) &vdev->irqs[index], in vfio_platform_set_irq_unmask()
127 &vdev->irqs[index].unmask, in vfio_platform_set_irq_unmask()
130 vfio_virqfd_disable(&vdev->irqs[index].unmask); in vfio_platform_set_irq_unmask()
[all …]
/kernel/linux/linux-4.19/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-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-4.19/arch/powerpc/platforms/powernv/
Dpci-cxl.c66 void pnv_cxl_release_hwirq_ranges(struct cxl_irq_ranges *irqs, in pnv_cxl_release_hwirq_ranges() argument
74 if (!irqs->range[i]) in pnv_cxl_release_hwirq_ranges()
77 i, irqs->offset[i], in pnv_cxl_release_hwirq_ranges()
78 irqs->range[i]); in pnv_cxl_release_hwirq_ranges()
79 hwirq = irqs->offset[i] - phb->msi_base; in pnv_cxl_release_hwirq_ranges()
81 irqs->range[i]); in pnv_cxl_release_hwirq_ranges()
86 int pnv_cxl_alloc_hwirq_ranges(struct cxl_irq_ranges *irqs, in pnv_cxl_alloc_hwirq_ranges() argument
93 memset(irqs, 0, sizeof(struct cxl_irq_ranges)); in pnv_cxl_alloc_hwirq_ranges()
107 irqs->offset[i] = phb->msi_base + hwirq; in pnv_cxl_alloc_hwirq_ranges()
108 irqs->range[i] = try; in pnv_cxl_alloc_hwirq_ranges()
[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-4.19/drivers/bus/fsl-mc/
Dfsl-mc-allocator.c329 * ID. A block of IRQs is pre-allocated and maintained in a pool
335 * It allocates a block of IRQs from the GIC-ITS.
398 * It frees the IRQs that were allocated to the pool, back to the GIC-ITS.
424 * Allocate the IRQs required by a given fsl-mc device.
432 struct fsl_mc_device_irq **irqs = NULL; in fsl_mc_allocate_irqs() local
436 if (mc_dev->irqs) in fsl_mc_allocate_irqs()
454 "Not able to allocate %u irqs for device\n", irq_count); in fsl_mc_allocate_irqs()
458 irqs = devm_kcalloc(&mc_dev->dev, irq_count, sizeof(irqs[0]), in fsl_mc_allocate_irqs()
460 if (!irqs) in fsl_mc_allocate_irqs()
471 irqs[i] = to_fsl_mc_irq(resource); in fsl_mc_allocate_irqs()
[all …]
/kernel/linux/linux-4.19/drivers/gpio/
Dgpio-davinci.c223 chips->irqs[i] = platform_get_irq(pdev, i); in davinci_gpio_probe()
224 if (chips->irqs[i] < 0) { in davinci_gpio_probe()
225 if (chips->irqs[i] != -EPROBE_DEFER) in davinci_gpio_probe()
227 chips->irqs[i]); in davinci_gpio_probe()
228 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()
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()
[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-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()
128 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-4.19/drivers/irqchip/
Dirq-bcm6345-l1.c22 * 0x1000_0028: CPU0_W0_STATUS IRQs 31-63
23 * 0x1000_002c: CPU0_W1_STATUS IRQs 0-31
26 * 0x1000_0038: CPU1_W0_STATUS IRQs 31-63
27 * 0x1000_003c: CPU1_W1_STATUS IRQs 0-31
34 * 0x1000_0030: CPU0_W0_STATUS IRQs 96-127
35 * 0x1000_0034: CPU0_W1_STATUS IRQs 64-95
36 * 0x1000_0038: CPU0_W2_STATUS IRQs 32-63
37 * 0x1000_003c: CPU0_W3_STATUS IRQs 0-31
42 * 0x1000_0050: CPU1_W0_STATUS IRQs 96-127
43 * 0x1000_0054: CPU1_W1_STATUS IRQs 64-95
[all …]
Dirq-nvic.c36 * Each bank handles 32 irqs. Only the 16th (= last) bank handles only
37 * 16 irqs.
90 unsigned int irqs, i, ret, numbanks; in nvic_of_init() local
102 irqs = numbanks * 32; in nvic_of_init()
103 if (irqs > NVIC_MAX_IRQ) in nvic_of_init()
104 irqs = NVIC_MAX_IRQ; in nvic_of_init()
107 irq_domain_add_linear(node, irqs, &nvic_irq_domain_ops, NULL); in nvic_of_init()
142 for (i = 0; i < irqs; i += 4) in nvic_of_init()
/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-4.19/arch/unicore32/kernel/
Dirq.c34 * PKUnity GPIO edge detection for IRQs:
35 * IRQs are generated on Falling-Edge, Rising-Edge, or both.
75 * GPIO IRQs must be acknowledged. This is for IRQs from 0 to 7.
112 * irq_controller_lock held, and IRQs disabled. Decode the IRQ
139 * GPIO0-27 edge IRQs need to be handled specially.
140 * In addition, the IRQs are all collected up into one bit in the
189 * We don't need to ACK IRQs on the PKUnity unless they're GPIOs
190 * this is for internal IRQs i.e. from 8 to 31.
226 .name = "irqs",
300 /* disable all IRQs */ in init_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-4.19/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-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-4.19/drivers/pci/controller/
Dvmd.c75 * struct vmd_irq_list - list of driver requested IRQs mapping to a VMD vector
78 * @count: number of child IRQs assigned to this vector; used to track
94 struct vmd_irq_list *irqs; member
114 struct vmd_irq_list *irqs) in index_from_irqs() argument
116 return irqs - vmd->irqs; in index_from_irqs()
120 * Drivers managing a device in a VMD domain allocate their own IRQs as before,
205 return &vmd->irqs[0]; in vmd_next_irq()
215 return &vmd->irqs[0]; in vmd_next_irq()
220 if (vmd->irqs[i].count < vmd->irqs[best].count) in vmd_next_irq()
222 vmd->irqs[best].count++; in vmd_next_irq()
[all …]
/kernel/linux/linux-4.19/drivers/pci/pcie/
Dportdrv_core.c95 * @irqs: Array of interrupt vectors to populate
100 static int pcie_port_enable_irq_vec(struct pci_dev *dev, int *irqs, int mask) in pcie_port_enable_irq_vec() argument
140 irqs[PCIE_PORT_SERVICE_PME_SHIFT] = pci_irq_vector(dev, pme); in pcie_port_enable_irq_vec()
141 irqs[PCIE_PORT_SERVICE_HP_SHIFT] = pci_irq_vector(dev, pme); in pcie_port_enable_irq_vec()
145 irqs[PCIE_PORT_SERVICE_AER_SHIFT] = pci_irq_vector(dev, aer); in pcie_port_enable_irq_vec()
148 irqs[PCIE_PORT_SERVICE_DPC_SHIFT] = pci_irq_vector(dev, dpc); in pcie_port_enable_irq_vec()
154 * pcie_init_service_irqs - initialize irqs for PCI Express port services
156 * @irqs: Array of irqs to populate
161 static int pcie_init_service_irqs(struct pci_dev *dev, int *irqs, int mask) in pcie_init_service_irqs() argument
166 irqs[i] = -1; in pcie_init_service_irqs()
[all …]

12345678910>>...133