| /linux/arch/arm64/kvm/vgic/ |
| H A D | vgic.c | 69 struct vgic_irq *irq = NULL; in vgic_get_lpi() local 73 irq = xa_load(&dist->lpi_xa, intid); in vgic_get_lpi() 74 if (!vgic_try_get_irq_ref(irq)) in vgic_get_lpi() 75 irq = NULL; in vgic_get_lpi() 79 return irq; in vgic_get_lpi() 117 static void vgic_release_lpi_locked(struct vgic_dist *dist, struct vgic_irq *irq) in vgic_release_lpi_locked() argument 120 __xa_erase(&dist->lpi_xa, irq->intid); in vgic_release_lpi_locked() 121 kfree_rcu(irq, rcu); in vgic_release_lpi_locked() 124 static __must_check bool __vgic_put_irq(struct kvm *kvm, struct vgic_irq *irq) in __vgic_put_irq() argument 126 if (irq->intid < VGIC_MIN_LPI) in __vgic_put_irq() [all …]
|
| H A D | vgic-v4.c | 84 static irqreturn_t vgic_v4_doorbell_handler(int irq, void *info) in vgic_v4_doorbell_handler() argument 90 !irqd_irq_disabled(&irq_to_desc(irq)->irq_data)) in vgic_v4_doorbell_handler() 91 disable_irq_nosync(irq); in vgic_v4_doorbell_handler() 108 static void vgic_v4_sync_sgi_config(struct its_vpe *vpe, struct vgic_irq *irq) in vgic_v4_sync_sgi_config() argument 110 vpe->sgi_config[irq->intid].enabled = irq->enabled; in vgic_v4_sync_sgi_config() 111 vpe->sgi_config[irq->intid].group = irq->group; in vgic_v4_sync_sgi_config() 112 vpe->sgi_config[irq->intid].priority = irq->priority; in vgic_v4_sync_sgi_config() 126 struct vgic_irq *irq = vgic_get_vcpu_irq(vcpu, i); in vgic_v4_enable_vsgis() local 131 raw_spin_lock_irqsave(&irq->irq_lock, flags); in vgic_v4_enable_vsgis() 133 if (irq->hw) in vgic_v4_enable_vsgis() [all …]
|
| H A D | vgic-mmio.c | 53 struct vgic_irq *irq = vgic_get_vcpu_irq(vcpu, intid + i); in vgic_mmio_read_group() local 55 if (irq->group) in vgic_mmio_read_group() 58 vgic_put_irq(vcpu->kvm, irq); in vgic_mmio_read_group() 64 static void vgic_update_vsgi(struct vgic_irq *irq) in vgic_update_vsgi() argument 66 WARN_ON(its_prop_update_vsgi(irq->host_irq, irq->priority, irq->group)); in vgic_update_vsgi() 77 struct vgic_irq *irq = vgic_get_vcpu_irq(vcpu, intid + i); in vgic_mmio_write_group() local 79 raw_spin_lock_irqsave(&irq->irq_lock, flags); in vgic_mmio_write_group() 80 irq->group = !!(val & BIT(i)); in vgic_mmio_write_group() 81 if (irq->hw && vgic_irq_is_sgi(irq->intid)) { in vgic_mmio_write_group() 82 vgic_update_vsgi(irq); in vgic_mmio_write_group() [all …]
|
| H A D | vgic-v2.c | 59 struct vgic_irq *irq; in vgic_v2_fold_lr() local 70 irq = vgic_get_vcpu_irq(vcpu, intid); in vgic_v2_fold_lr() 72 scoped_guard(raw_spinlock, &irq->irq_lock) { in vgic_v2_fold_lr() 74 deactivated = irq->active && !(val & GICH_LR_ACTIVE_BIT); in vgic_v2_fold_lr() 75 irq->active = !!(val & GICH_LR_ACTIVE_BIT); in vgic_v2_fold_lr() 77 if (irq->active && vgic_irq_is_sgi(intid)) in vgic_v2_fold_lr() 78 irq->active_source = cpuid; in vgic_v2_fold_lr() 81 if (irq->config == VGIC_CONFIG_EDGE && in vgic_v2_fold_lr() 83 irq->pending_latch = true; in vgic_v2_fold_lr() 86 irq->source |= (1 << cpuid); in vgic_v2_fold_lr() [all …]
|
| /linux/drivers/misc/ocxl/ |
| H A D | afu_irq.c | 35 struct afu_irq *irq; in ocxl_irq_set_handler() local 39 irq = idr_find(&ctx->irq_idr, irq_id); in ocxl_irq_set_handler() 40 if (!irq) { in ocxl_irq_set_handler() 45 irq->handler = handler; in ocxl_irq_set_handler() 46 irq->private = private; in ocxl_irq_set_handler() 47 irq->free_private = free_private; in ocxl_irq_set_handler() 60 struct afu_irq *irq = data; in afu_irq_handler() local 64 if (irq->handler) in afu_irq_handler() 65 return irq->handler(irq->private); in afu_irq_handler() 70 static int setup_afu_irq(struct ocxl_context *ctx, struct afu_irq *irq) in setup_afu_irq() argument [all …]
|
| /linux/drivers/acpi/ |
| H A D | pci_link.c | 69 struct acpi_pci_link_irq irq; member 97 struct acpi_resource_irq *p = &resource->data.irq; in acpi_pci_link_check_possible() 112 link->irq.possible[i] = p->interrupts[i]; in acpi_pci_link_check_possible() 113 link->irq.possible_count++; in acpi_pci_link_check_possible() 115 link->irq.triggering = p->triggering; in acpi_pci_link_check_possible() 116 link->irq.polarity = p->polarity; in acpi_pci_link_check_possible() 117 link->irq.resource_type = ACPI_RESOURCE_TYPE_IRQ; in acpi_pci_link_check_possible() 138 link->irq.possible[i] = p->interrupts[i]; in acpi_pci_link_check_possible() 139 link->irq.possible_count++; in acpi_pci_link_check_possible() 141 link->irq.triggering = p->triggering; in acpi_pci_link_check_possible() [all …]
|
| /linux/arch/m68k/coldfire/ |
| H A D | intc-simr.c | 38 static inline unsigned int irq2ebit(unsigned int irq) in irq2ebit() argument 40 return irqebitmap[irq - EINT0]; in irq2ebit() 54 static inline unsigned int irq2ebit(unsigned int irq) in irq2ebit() argument 56 return irq - EINT0; in irq2ebit() 69 unsigned int irq = d->irq - MCFINT_VECBASE; in intc_irq_mask() local 71 if (MCFINTC2_SIMR && (irq > 127)) in intc_irq_mask() 72 __raw_writeb(irq - 128, MCFINTC2_SIMR); in intc_irq_mask() 73 else if (MCFINTC1_SIMR && (irq > 63)) in intc_irq_mask() 74 __raw_writeb(irq - 64, MCFINTC1_SIMR); in intc_irq_mask() 76 __raw_writeb(irq, MCFINTC0_SIMR); in intc_irq_mask() [all …]
|
| H A D | intc-2.c | 52 unsigned int irq = d->irq - MCFINT_VECBASE; in intc_irq_mask() local 57 imraddr = (irq & 0x40) ? MCFICM_INTC1 : MCFICM_INTC0; in intc_irq_mask() 61 imraddr += (irq & 0x20) ? MCFINTC_IMRH : MCFINTC_IMRL; in intc_irq_mask() 62 imrbit = 0x1 << (irq & 0x1f); in intc_irq_mask() 70 unsigned int irq = d->irq - MCFINT_VECBASE; in intc_irq_unmask() local 75 imraddr = (irq & 0x40) ? MCFICM_INTC1 : MCFICM_INTC0; in intc_irq_unmask() 79 imraddr += ((irq & 0x20) ? MCFINTC_IMRH : MCFINTC_IMRL); in intc_irq_unmask() 80 imrbit = 0x1 << (irq & 0x1f); in intc_irq_unmask() 83 if ((irq & 0x20) == 0) in intc_irq_unmask() 98 unsigned int irq = d->irq; in intc_irq_ack() local [all …]
|
| H A D | intc-5272.c | 83 unsigned int irq = d->irq; in intc_irq_mask() local 85 if ((irq >= MCFINT_VECBASE) && (irq <= MCFINT_VECMAX)) { in intc_irq_mask() 87 irq -= MCFINT_VECBASE; in intc_irq_mask() 88 v = 0x8 << intc_irqmap[irq].index; in intc_irq_mask() 89 writel(v, intc_irqmap[irq].icr); in intc_irq_mask() 95 unsigned int irq = d->irq; in intc_irq_unmask() local 97 if ((irq >= MCFINT_VECBASE) && (irq <= MCFINT_VECMAX)) { in intc_irq_unmask() 99 irq -= MCFINT_VECBASE; in intc_irq_unmask() 100 v = 0xd << intc_irqmap[irq].index; in intc_irq_unmask() 101 writel(v, intc_irqmap[irq].icr); in intc_irq_unmask() [all …]
|
| /linux/arch/arm/mach-rpc/ |
| H A D | irq.c | 76 int irq; in iomd_get_irq_nr() local 81 irq = irq_prio_h[reg]; in iomd_get_irq_nr() 82 if (irq) in iomd_get_irq_nr() 83 return irq; in iomd_get_irq_nr() 87 irq = irq_prio_d[reg]; in iomd_get_irq_nr() 88 if (irq) in iomd_get_irq_nr() 89 return irq; in iomd_get_irq_nr() 93 irq = irq_prio_l[reg]; in iomd_get_irq_nr() 94 if (irq) in iomd_get_irq_nr() 95 return irq; in iomd_get_irq_nr() [all …]
|
| /linux/arch/m68k/include/asm/ |
| H A D | atariints.h | 115 static inline int get_mfp_bit( unsigned irq, int type ) in get_mfp_bit() argument 119 mask = 1 << (irq & 7); in get_mfp_bit() 121 ((irq & 8) >> 2) + (((irq-8) & 16) << 3); in get_mfp_bit() 125 static inline void set_mfp_bit( unsigned irq, int type ) in set_mfp_bit() argument 129 mask = 1 << (irq & 7); in set_mfp_bit() 131 ((irq & 8) >> 2) + (((irq-8) & 16) << 3); in set_mfp_bit() 136 static inline void clear_mfp_bit( unsigned irq, int type ) in clear_mfp_bit() argument 140 mask = ~(1 << (irq & 7)); in clear_mfp_bit() 142 ((irq & 8) >> 2) + (((irq-8) & 16) << 3); in clear_mfp_bit() 157 static inline void atari_enable_irq( unsigned irq ) in atari_enable_irq() argument [all …]
|
| /linux/arch/x86/include/asm/trace/ |
| H A D | irq_vectors.h | 127 TP_PROTO(unsigned int irq, unsigned int vector, 130 TP_ARGS(irq, vector, cpu, apicdest), 133 __field( unsigned int, irq ) 140 __entry->irq = irq; 147 __entry->irq, __entry->vector, __entry->cpu, 153 TP_PROTO(unsigned int irq, unsigned int vector, 157 TP_ARGS(irq, vector, cpu, prev_vector, prev_cpu), 160 __field( unsigned int, irq ) 168 __entry->irq = irq; 177 __entry->irq, __entry->vector, __entry->cpu, [all …]
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/ |
| H A D | pci_irq.c | 154 static void mlx5_system_free_irq(struct mlx5_irq *irq) in mlx5_system_free_irq() argument 156 struct mlx5_irq_pool *pool = irq->pool; in mlx5_system_free_irq() 165 irq_update_affinity_hint(irq->map.virq, NULL); in mlx5_system_free_irq() 169 irq_cpu_rmap_remove(rmap, irq->map.virq); in mlx5_system_free_irq() 172 free_irq(irq->map.virq, &irq->nh); in mlx5_system_free_irq() 173 if (irq->map.index && pci_msix_can_alloc_dyn(pool->dev->pdev)) in mlx5_system_free_irq() 174 pci_msix_free_irq(pool->dev->pdev, irq->map); in mlx5_system_free_irq() 177 static void irq_release(struct mlx5_irq *irq) in irq_release() argument 179 struct mlx5_irq_pool *pool = irq->pool; in irq_release() 181 xa_erase(&pool->irqs, irq->pool_index); in irq_release() [all …]
|
| /linux/drivers/parisc/ |
| H A D | gsc.c | 35 int irq = txn_alloc_irq(GSC_EIM_WIDTH); in gsc_alloc_irq() local 36 if (irq < 0) { in gsc_alloc_irq() 38 return irq; in gsc_alloc_irq() 41 i->txn_addr = txn_alloc_addr(irq); in gsc_alloc_irq() 42 i->txn_data = txn_alloc_data(irq); in gsc_alloc_irq() 43 i->irq = irq; in gsc_alloc_irq() 45 return irq; in gsc_alloc_irq() 48 int gsc_claim_irq(struct gsc_irq *i, int irq) in gsc_claim_irq() argument 50 int c = irq; in gsc_claim_irq() 52 irq += CPU_IRQ_BASE; /* virtualize the IRQ first */ in gsc_claim_irq() [all …]
|
| /linux/arch/m68k/q40/ |
| H A D | q40ints.c | 48 unsigned int irq = data->irq; in q40_irq_startup() local 51 switch (irq) { in q40_irq_startup() 55 irq); in q40_irq_startup() 133 static irqreturn_t q40_timer_int(int irq, void *dev_id) in q40_timer_int() argument 174 struct IRQ_TABLE{ unsigned mask; int irq ;}; member 182 { .mask = Q40_IRQ3_MASK, .irq = 3 }, /* ser 1 */ 183 { .mask = Q40_IRQ4_MASK, .irq = 4 }, /* ser 2 */ 184 { .mask = Q40_IRQ14_MASK, .irq = 14 }, /* IDE 1 */ 185 { .mask = Q40_IRQ15_MASK, .irq = 15 }, /* IDE 2 */ 186 { .mask = Q40_IRQ6_MASK, .irq = 6 }, /* floppy, handled elsewhere */ [all …]
|
| /linux/drivers/gpu/drm/amd/amdgpu/ |
| H A D | amdgpu_irq.c | 165 spin_lock_irqsave(&adev->irq.lock, irqflags); in amdgpu_irq_disable_all() 167 if (!adev->irq.client[i].sources) in amdgpu_irq_disable_all() 171 struct amdgpu_irq_src *src = adev->irq.client[i].sources[j]; in amdgpu_irq_disable_all() 186 spin_unlock_irqrestore(&adev->irq.lock, irqflags); in amdgpu_irq_disable_all() 200 static irqreturn_t amdgpu_irq_handler(int irq, void *arg) in amdgpu_irq_handler() argument 206 ret = amdgpu_ih_process(adev, &adev->irq.ih); in amdgpu_irq_handler() 225 irq.ih1_work); in amdgpu_irq_handle_ih1() 227 amdgpu_ih_process(adev, &adev->irq.ih1); in amdgpu_irq_handle_ih1() 240 irq.ih2_work); in amdgpu_irq_handle_ih2() 242 amdgpu_ih_process(adev, &adev->irq.ih2); in amdgpu_irq_handle_ih2() [all …]
|
| /linux/arch/m68k/mac/ |
| H A D | macints.c | 142 static irqreturn_t mac_nmi_handler(int irq, void *dev_id) in mac_nmi_handler() argument 190 int irq = data->irq; in mac_irq_enable() local 191 int irq_src = IRQ_SRC(irq); in mac_irq_enable() 198 oss_irq_enable(irq); in mac_irq_enable() 200 via_irq_enable(irq); in mac_irq_enable() 207 psc_irq_enable(irq); in mac_irq_enable() 209 oss_irq_enable(irq); in mac_irq_enable() 213 baboon_irq_enable(irq); in mac_irq_enable() 220 int irq = data->irq; in mac_irq_disable() local 221 int irq_src = IRQ_SRC(irq); in mac_irq_disable() [all …]
|
| /linux/arch/s390/kernel/ |
| H A D | irq.c | 42 int irq; member 58 {.irq = EXT_INTERRUPT, .name = "EXT"}, 59 {.irq = IO_INTERRUPT, .name = "I/O"}, 60 {.irq = THIN_INTERRUPT, .name = "AIO"}, 69 {.irq = IRQEXT_CLK, .name = "CLK", .desc = "[EXT] Clock Comparator"}, 70 {.irq = IRQEXT_EXC, .name = "EXC", .desc = "[EXT] External Call"}, 71 {.irq = IRQEXT_EMS, .name = "EMS", .desc = "[EXT] Emergency Signal"}, 72 {.irq = IRQEXT_TMR, .name = "TMR", .desc = "[EXT] CPU Timer"}, 73 {.irq = IRQEXT_TLA, .name = "TAL", .desc = "[EXT] Timing Alert"}, 74 {.irq = IRQEXT_PFL, .name = "PFL", .desc = "[EXT] Pseudo Page Fault"}, [all …]
|
| /linux/drivers/mfd/ |
| H A D | da9052-irq.c | 176 static int da9052_map_irq(struct da9052 *da9052, int irq) in da9052_map_irq() argument 178 return regmap_irq_get_virq(da9052->irq_data, irq); in da9052_map_irq() 181 int da9052_enable_irq(struct da9052 *da9052, int irq) in da9052_enable_irq() argument 183 irq = da9052_map_irq(da9052, irq); in da9052_enable_irq() 184 if (irq < 0) in da9052_enable_irq() 185 return irq; in da9052_enable_irq() 187 enable_irq(irq); in da9052_enable_irq() 193 int da9052_disable_irq(struct da9052 *da9052, int irq) in da9052_disable_irq() argument 195 irq = da9052_map_irq(da9052, irq); in da9052_disable_irq() 196 if (irq < 0) in da9052_disable_irq() [all …]
|
| /linux/arch/sparc/kernel/ |
| H A D | irq_64.c | 97 static void bucket_set_irq(unsigned long bucket_pa, unsigned int irq) in bucket_set_irq() argument 101 : "r" (irq), in bucket_set_irq() 232 void irq_free(unsigned int irq) in irq_free() argument 234 void *data = irq_get_handler_data(irq); in irq_free() 237 irq_set_handler_data(irq, NULL); in irq_free() 238 irq_free_descs(irq, 1); in irq_free() 243 int irq; in irq_alloc() local 245 irq = __irq_alloc_descs(-1, 1, 1, numa_node_id(), NULL, NULL); in irq_alloc() 246 if (irq <= 0) in irq_alloc() 249 return irq; in irq_alloc() [all …]
|
| /linux/arch/powerpc/platforms/44x/ |
| H A D | hsta_msi.c | 42 int irq, hwirq; in hsta_setup_msi_irqs() local 52 irq = msi_bitmap_alloc_hwirqs(&ppc4xx_hsta_msi.bmp, 1); in hsta_setup_msi_irqs() 53 if (irq < 0) { in hsta_setup_msi_irqs() 56 return irq; in hsta_setup_msi_irqs() 59 hwirq = ppc4xx_hsta_msi.irq_map[irq]; in hsta_setup_msi_irqs() 61 pr_err("%s: Failed mapping irq %d\n", __func__, irq); in hsta_setup_msi_irqs() 69 addr = ppc4xx_hsta_msi.address + irq*0x10; in hsta_setup_msi_irqs() 83 msi_bitmap_free_hwirqs(&ppc4xx_hsta_msi.bmp, irq, 1); in hsta_setup_msi_irqs() 94 int irq; in hsta_find_hwirq_offset() local 97 for (irq = 0; irq < ppc4xx_hsta_msi.irq_count; irq++) in hsta_find_hwirq_offset() [all …]
|
| /linux/arch/alpha/kernel/ |
| H A D | sys_rawhide.c | 61 unsigned int irq = d->irq; in rawhide_enable_irq() local 63 irq -= 16; in rawhide_enable_irq() 64 hose = irq / 24; in rawhide_enable_irq() 68 irq -= hose * 24; in rawhide_enable_irq() 69 mask = 1 << irq; in rawhide_enable_irq() 82 unsigned int irq = d->irq; in rawhide_disable_irq() local 84 irq -= 16; in rawhide_disable_irq() 85 hose = irq / 24; in rawhide_disable_irq() 89 irq -= hose * 24; in rawhide_disable_irq() 90 mask = ~(1 << irq) | hose_irq_masks[hose]; in rawhide_disable_irq() [all …]
|
| /linux/drivers/xen/events/ |
| H A D | events_base.c | 110 unsigned irq; member 215 static int set_evtchn_to_irq(evtchn_port_t evtchn, unsigned int irq) in set_evtchn_to_irq() argument 229 if (irq == -1) in set_evtchn_to_irq() 246 WRITE_ONCE(evtchn_to_irq[row][col], irq); in set_evtchn_to_irq() 251 static struct irq_info *info_for_irq(unsigned irq) in info_for_irq() argument 253 if (irq < nr_legacy_irqs()) in info_for_irq() 254 return legacy_info_ptrs[irq]; in info_for_irq() 256 return irq_get_chip_data(irq); in info_for_irq() 259 static void set_info_for_irq(unsigned int irq, struct irq_info *info) in set_info_for_irq() argument 261 if (irq < nr_legacy_irqs()) in set_info_for_irq() [all …]
|
| /linux/arch/mips/bcm63xx/ |
| H A D | irq.c | 37 static inline u32 get_ext_irq_perf_reg(int irq) in get_ext_irq_perf_reg() argument 39 if (irq < 4) in get_ext_irq_perf_reg() 115 unsigned irq = d->irq - IRQ_INTERNAL_BASE; \ 116 unsigned reg = (irq / 32) ^ (width/32 - 1); \ 117 unsigned bit = irq & 0x1f; \ 137 unsigned irq = d->irq - IRQ_INTERNAL_BASE; \ 138 unsigned reg = (irq / 32) ^ (width/32 - 1); \ 139 unsigned bit = irq & 0x1f; \ 215 unsigned int irq = d->irq - IRQ_EXTERNAL_BASE; in bcm63xx_external_irq_mask() local 219 regaddr = get_ext_irq_perf_reg(irq); in bcm63xx_external_irq_mask() [all …]
|
| /linux/drivers/acpi/acpica/ |
| H A D | rsirq.c | 27 {ACPI_RSC_BITMASK16, ACPI_RS_OFFSET(data.irq.interrupts[0]), 28 AML_OFFSET(irq.irq_mask), 29 ACPI_RS_OFFSET(data.irq.interrupt_count)}, 33 {ACPI_RSC_SET8, ACPI_RS_OFFSET(data.irq.triggering), 39 {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET(data.irq.descriptor_length), 40 AML_OFFSET(irq.descriptor_type), 49 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.irq.triggering), 50 AML_OFFSET(irq.flags), 53 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.irq.polarity), 54 AML_OFFSET(irq.flags), [all …]
|