| /kernel/linux/linux-6.6/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-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-6.6/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-6.6/arch/powerpc/platforms/powernv/ |
| D | pci-cxl.c | 63 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/ |
| 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-6.6/drivers/crypto/intel/qat/qat_common/ |
| D | adf_isr.c | 158 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/ |
| D | hi6421v600-irq.c | 3 * 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/ |
| D | fsl-mc-allocator.c | 347 * 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/ |
| 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-6.6/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/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-6.6/drivers/gpio/ |
| D | gpio-davinci.c | 63 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/ |
| 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() 130 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-6.6/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() 130 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-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-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-6.6/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-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-6.6/drivers/power/supply/ |
| D | axp20x_ac_power.c | 48 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/ |
| D | axp20x_ac_power.c | 49 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 …]
|