| /kernel/linux/linux-4.19/kernel/irq/ |
| D | timings.c | 46 * @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 …]
|
| D | irq_sim.c | 56 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/ |
| D | vfio_platform_irq.c | 49 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/ |
| D | vfio_platform_irq.c | 57 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/ |
| D | crossbar.txt | 13 - 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/ |
| D | crossbar.txt | 13 - 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/ |
| D | pci-cxl.c | 62 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/ |
| D | pci-cxl.c | 66 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/ |
| D | fsl-mc-allocator.c | 341 * 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/ |
| D | fsl-mc-allocator.c | 329 * 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/ |
| D | gpio-davinci.c | 223 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/ |
| D | timings.c | 382 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/ |
| D | gpio-davinci.c | 64 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/ |
| D | irq-nvic.c | 33 * 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()
|
| D | irq-bcm6345-l1.c | 19 * 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/ |
| D | irq-bcm6345-l1.c | 22 * 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 …]
|
| D | irq-nvic.c | 36 * 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/ |
| D | vmd.c | 81 * 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/ |
| D | irq.c | 34 * 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/ |
| D | portdrv_core.c | 96 * @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/ |
| D | st,sti-irq-syscfg.txt | 1 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/ |
| D | gp_timer_defs.h | 28 …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/ |
| D | st,sti-irq-syscfg.txt | 1 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/ |
| D | vmd.c | 75 * 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/ |
| D | portdrv_core.c | 95 * @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 …]
|