/kernel/linux/linux-5.10/drivers/irqchip/ |
D | Makefile | 4 obj-$(CONFIG_AL_FIC) += irq-al-fic.o 5 obj-$(CONFIG_ALPINE_MSI) += irq-alpine-msi.o 6 obj-$(CONFIG_ATH79) += irq-ath79-cpu.o 7 obj-$(CONFIG_ATH79) += irq-ath79-misc.o 8 obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2835.o 9 obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2836.o 10 obj-$(CONFIG_ARCH_ACTIONS) += irq-owl-sirq.o 11 obj-$(CONFIG_DAVINCI_AINTC) += irq-davinci-aintc.o 12 obj-$(CONFIG_DAVINCI_CP_INTC) += irq-davinci-cp-intc.o 14 obj-$(CONFIG_FARADAY_FTINTC010) += irq-ftintc010.o [all …]
|
/kernel/linux/linux-5.10/drivers/misc/ocxl/ |
D | afu_irq.c | 34 struct afu_irq *irq; in ocxl_irq_set_handler() local 38 irq = idr_find(&ctx->irq_idr, irq_id); in ocxl_irq_set_handler() 39 if (!irq) { in ocxl_irq_set_handler() 44 irq->handler = handler; in ocxl_irq_set_handler() 45 irq->private = private; in ocxl_irq_set_handler() 46 irq->free_private = free_private; in ocxl_irq_set_handler() 59 struct afu_irq *irq = (struct afu_irq *) data; in afu_irq_handler() local 63 if (irq->handler) in afu_irq_handler() 64 return irq->handler(irq->private); in afu_irq_handler() 69 static int setup_afu_irq(struct ocxl_context *ctx, struct afu_irq *irq) in setup_afu_irq() argument [all …]
|
/kernel/linux/linux-5.10/drivers/staging/media/atomisp/pci/hive_isp_css_include/host/ |
D | irq_public.h | 22 /*! Read the control registers of IRQ[ID] 24 \param ID[in] IRQ identifier 25 \param state[out] irq controller state structure 27 \return none, state = IRQ[ID].state 32 /*! Write to a control register of IRQ[ID] 34 \param ID[in] IRQ identifier 38 \return none, IRQ[ID].ctrl[reg] = value 45 /*! Read from a control register of IRQ[ID] 47 \param ID[in] IRQ identifier 51 \return IRQ[ID].ctrl[reg] [all …]
|
/kernel/linux/linux-5.10/arch/arm64/kvm/vgic/ |
D | vgic.c | 7 #include <linux/irq.h> 56 * matching interrupt ID and return a reference to the IRQ structure. 61 struct vgic_irq *irq = NULL; in vgic_get_lpi() local 66 list_for_each_entry(irq, &dist->lpi_list_head, lpi_list) { in vgic_get_lpi() 67 if (irq->intid != intid) in vgic_get_lpi() 72 * call vgic_put_irq() later once it's finished with the IRQ. in vgic_get_lpi() 74 vgic_get_irq_kref(irq); in vgic_get_lpi() 77 irq = NULL; in vgic_get_lpi() 82 return irq; in vgic_get_lpi() 88 * to call vgic_put_irq() once it's finished with this IRQ. [all …]
|
D | vgic-mmio.c | 9 #include <linux/irq.h> 53 struct vgic_irq *irq = vgic_get_irq(vcpu->kvm, 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_irq(vcpu->kvm, 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() [all …]
|
/kernel/linux/linux-5.10/drivers/xen/events/ |
D | events_base.c | 9 * chip. When an event is received, it is mapped to an irq and sent 29 #include <linux/irq.h> 45 #include <asm/irq.h> 83 * Packed IRQ information: 85 * event channel - irq->event channel mapping 88 * PIRQ - vector, with MSB being "needs EIO", or physical IRQ of the HVM 89 * guest, or GSI (real passthrough IRQ) of the device. 105 unsigned irq; member 146 * Adding of event channels is no issue as the associated IRQ becomes active 147 * only after everything is setup (before request_[threaded_]irq() the handler [all …]
|
/kernel/linux/linux-5.10/drivers/acpi/ |
D | pci_link.c | 10 * 1. Support more than one IRQ resource entry per link device (index). 12 * for IRQ management (e.g. start()->_SRS). 26 #include <linux/irq.h> 53 * later even the link is disable. Instead, we just repick the active irq 56 u32 active; /* Current IRQ */ 69 struct acpi_pci_link_irq irq; member 96 struct acpi_resource_irq *p = &resource->data.irq; in acpi_pci_link_check_possible() 99 "Blank _PRS IRQ resource\n")); in acpi_pci_link_check_possible() 107 "Invalid _PRS IRQ %d\n", in acpi_pci_link_check_possible() 111 link->irq.possible[i] = p->interrupts[i]; in acpi_pci_link_check_possible() [all …]
|
/kernel/linux/linux-5.10/arch/x86/include/asm/trace/ |
D | irq_vectors.h | 61 * irq_work - called when entering/exiting a irq work interrupt 128 TP_PROTO(unsigned int irq, unsigned int vector, 131 TP_ARGS(irq, vector, cpu, apicdest), 134 __field( unsigned int, irq ) 141 __entry->irq = irq; 147 TP_printk("irq=%u vector=%u cpu=%u apicdest=0x%08x", 148 __entry->irq, __entry->vector, __entry->cpu, 154 TP_PROTO(unsigned int irq, unsigned int vector, 158 TP_ARGS(irq, vector, cpu, prev_vector, prev_cpu), 161 __field( unsigned int, irq ) [all …]
|
/kernel/linux/linux-5.10/drivers/misc/ |
D | dummy-irq.c | 3 * Dummy IRQ handler driver. 6 * by the 'irq' parameter. 9 * which spurious IRQs would happen on disabled IRQ vector. 15 #include <linux/irq.h> 18 static int irq = -1; variable 20 static irqreturn_t dummy_interrupt(int irq, void *dev_id) in dummy_interrupt() argument 25 printk(KERN_INFO "dummy-irq: interrupt occurred on IRQ %d\n", in dummy_interrupt() 26 irq); in dummy_interrupt() 35 if (irq < 0) { in dummy_irq_init() 36 printk(KERN_ERR "dummy-irq: no IRQ given. Use irq=N\n"); in dummy_irq_init() [all …]
|
/kernel/linux/linux-5.10/drivers/gpu/drm/i915/gvt/ |
D | interrupt.c | 45 #define get_event_virt_handler(irq, e) (irq->events[e].v_handler) argument 46 #define get_irq_info(irq, e) (irq->events[e].info) argument 48 #define irq_to_gvt(irq) \ argument 49 container_of(irq, struct intel_gvt, irq) 150 struct intel_gvt_irq *irq = &gvt->irq; in regbase_to_irq_info() local 153 for_each_set_bit(i, irq->irq_info_bitmap, INTEL_GVT_IRQ_INFO_MAX) { in regbase_to_irq_info() 154 if (i915_mmio_reg_offset(irq->info[i]->reg_base) == reg) in regbase_to_irq_info() 155 return irq->info[i]; in regbase_to_irq_info() 179 struct intel_gvt_irq_ops *ops = gvt->irq.ops; in intel_vgpu_reg_imr_handler() 193 * intel_vgpu_reg_master_irq_handler - master IRQ write emulation handler [all …]
|
/kernel/linux/linux-5.10/arch/ia64/kernel/ |
D | iosapic.c | 17 * 00/10/27 Asit Mallick, Goutham Rao <goutham.rao@intel.com> IRQ vector 23 * 01/07/27 J.I. Lee PCI irq routing, Platform/Legacy interrupts 25 * 02/01/23 J.I. Lee iosapic pgm fixes for PCI irq routing from _PRT 28 * initializations for /proc/irq/#/smp_affinity 29 * 02/04/02 P. Diefenbaugh Cleaned up ACPI PCI IRQ routing. 31 * 02/04/30 J.I. Lee bug fix in find_iosapic to fix ACPI PCI IRQ to 34 * 02/08/04 T. Kochi Cleaned up terminology (irq, global system 43 * Updated to work with irq migration necessary 66 * (4) The kernel recognizes an interrupt as an IRQ. The IRQ interface is 68 * As an IRQ is a number, we have to have [all …]
|
D | msi_ia64.c | 7 #include <linux/irq.h> 22 unsigned int irq = idata->irq; in ia64_set_msi_irq_affinity() local 24 if (irq_prepare_move(irq, cpu)) in ia64_set_msi_irq_affinity() 36 data |= MSI_DATA_VECTOR(irq_to_vector(irq)); in ia64_set_msi_irq_affinity() 39 pci_write_msi_msg(irq, &msg); in ia64_set_msi_irq_affinity() 50 int irq, vector; in arch_setup_msi_irq() local 52 irq = create_irq(); in arch_setup_msi_irq() 53 if (irq < 0) in arch_setup_msi_irq() 54 return irq; in arch_setup_msi_irq() 56 irq_set_msi_desc(irq, desc); in arch_setup_msi_irq() [all …]
|
D | irq_ia64.c | 32 #include <linux/irq.h> 61 * Legacy IRQ to IA-64 vector translation table. 64 /* 8259 IRQ translation, first 16 entries */ 93 int irq; in find_unassigned_irq() local 95 for (irq = IA64_FIRST_DEVICE_VECTOR; irq < NR_IRQS; irq++) in find_unassigned_irq() 96 if (irq_status[irq] == IRQ_UNUSED) in find_unassigned_irq() 97 return irq; in find_unassigned_irq() 120 static int __bind_irq_vector(int irq, int vector, cpumask_t domain) in __bind_irq_vector() argument 124 struct irq_cfg *cfg = &irq_cfg[irq]; in __bind_irq_vector() 126 BUG_ON((unsigned)irq >= NR_IRQS); in __bind_irq_vector() [all …]
|
/kernel/linux/linux-5.10/drivers/parisc/ |
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() 37 printk("cannot get irq\n"); 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() [all …]
|
/kernel/linux/linux-5.10/arch/m68k/coldfire/ |
D | intc-simr.c | 17 #include <linux/irq.h> 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 > 128)) in intc_irq_mask() 72 __raw_writeb(irq - 128, MCFINTC2_SIMR); in intc_irq_mask() 73 else if (MCFINTC1_SIMR && (irq > 64)) in intc_irq_mask() 74 __raw_writeb(irq - 64, MCFINTC1_SIMR); in intc_irq_mask() [all …]
|
D | intc-2.c | 24 #include <linux/irq.h> 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() [all …]
|
D | intc-5272.c | 16 #include <linux/irq.h> 78 * an interrupt on this irq (for the external irqs). So this mask function 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() [all …]
|
/kernel/linux/linux-5.10/arch/arm/mach-rpc/ |
D | irq.c | 6 #include <asm/mach/irq.h> 8 #include <asm/irq.h> 11 // These are offsets from the stat register for each IRQ bank 24 static void iomd_set_base_mask(unsigned int irq, void __iomem *base, u32 mask) in iomd_set_base_mask() argument 26 struct irq_data *d = irq_get_irq_data(irq); in iomd_set_base_mask() 29 irq_set_chip_data(irq, (void *)(unsigned long)base); in iomd_set_base_mask() 75 unsigned int irq, clr, set; in rpc_init_irq() local 85 for (irq = 0; irq < NR_IRQS; irq++) { in rpc_init_irq() 89 if (irq <= 6 || (irq >= 9 && irq <= 15)) in rpc_init_irq() 92 if (irq == 21 || (irq >= 16 && irq <= 19) || in rpc_init_irq() [all …]
|
/kernel/linux/linux-5.10/Documentation/arm/ |
D | interrupts.rst | 16 Secondly, the IRQ subsystem. 39 SA1111 IRQ handler, SA1111 IRQs can hold off SMC9196 IRQs indefinitely. 48 We also bring the idea of an IRQ "chip" (mainly to reduce the size of 57 * Acknowledge the IRQ. 58 * If this is a level-based IRQ, then it is expected to mask the IRQ 61 void (*ack)(unsigned int irq); 63 * Mask the IRQ in hardware. 65 void (*mask)(unsigned int irq); 67 * Unmask the IRQ in hardware. 69 void (*unmask)(unsigned int irq); [all …]
|
/kernel/linux/linux-5.10/include/linux/ |
D | irqnr.h | 9 extern struct irq_desc *irq_to_desc(unsigned int irq); 12 # define for_each_irq_desc(irq, desc) \ argument 13 for (irq = 0, desc = irq_to_desc(irq); irq < nr_irqs; \ 14 irq++, desc = irq_to_desc(irq)) \ 20 # define for_each_irq_desc_reverse(irq, desc) \ argument 21 for (irq = nr_irqs - 1, desc = irq_to_desc(irq); irq >= 0; \ 22 irq--, desc = irq_to_desc(irq)) \ 27 # define for_each_active_irq(irq) \ argument 28 for (irq = irq_get_next_irq(0); irq < nr_irqs; \ 29 irq = irq_get_next_irq(irq + 1)) [all …]
|
D | interrupt.h | 19 #include <asm/irq.h> 40 * irq handling routines. 42 * IRQF_SHARED - allow sharing the irq among several devices 46 * IRQF_NOBALANCING - Flag to exclude this interrupt from irq balancing 52 * irq line disabled until the threaded handler has been run. 53 * IRQF_NO_SUSPEND - Do not disable this IRQ during suspend. Does not guarantee 58 * IRQF_EARLY_RESUME - Resume IRQ early during syscore instead of at device 60 * IRQF_COND_SUSPEND - If the IRQ is shared with a NO_SUSPEND user, execute this 101 * @irq: interrupt number 108 * @dir: pointer to the proc/irq/NN/name entry [all …]
|
/kernel/linux/linux-5.10/arch/powerpc/platforms/4xx/ |
D | hsta_msi.c | 41 int irq, hwirq; in hsta_setup_msi_irqs() local 51 irq = msi_bitmap_alloc_hwirqs(&ppc4xx_hsta_msi.bmp, 1); in hsta_setup_msi_irqs() 52 if (irq < 0) { in hsta_setup_msi_irqs() 55 return irq; in hsta_setup_msi_irqs() 58 hwirq = ppc4xx_hsta_msi.irq_map[irq]; in hsta_setup_msi_irqs() 60 pr_err("%s: Failed mapping irq %d\n", __func__, irq); in hsta_setup_msi_irqs() 68 addr = ppc4xx_hsta_msi.address + irq*0x10; in hsta_setup_msi_irqs() 75 pr_debug("%s: Setup irq %d (0x%0llx)\n", __func__, hwirq, in hsta_setup_msi_irqs() 82 msi_bitmap_free_hwirqs(&ppc4xx_hsta_msi.bmp, irq, 1); in hsta_setup_msi_irqs() 93 int irq; in hsta_find_hwirq_offset() local [all …]
|
/kernel/linux/linux-5.10/arch/sh/boards/mach-microdev/ |
D | irq.c | 3 * arch/sh/boards/superh/microdev/irq.c 11 #include <linux/irq.h> 23 { 0, 0, "unused" }, /* IRQ #0 IRL=15 0x200 */ 24 { MICRODEV_FPGA_IRQ_KEYBOARD, 1, "keyboard" }, /* IRQ #1 IRL=14 0x220 */ 25 { MICRODEV_FPGA_IRQ_SERIAL1, 1, "Serial #1"}, /* IRQ #2 IRL=13 0x240 */ 26 { MICRODEV_FPGA_IRQ_ETHERNET, 1, "Ethernet" }, /* IRQ #3 IRL=12 0x260 */ 27 { MICRODEV_FPGA_IRQ_SERIAL2, 0, "Serial #2"}, /* IRQ #4 IRL=11 0x280 */ 28 { 0, 0, "unused" }, /* IRQ #5 IRL=10 0x2a0 */ 29 { 0, 0, "unused" }, /* IRQ #6 IRL=9 0x2c0 */ 30 { MICRODEV_FPGA_IRQ_USB_HC, 1, "USB" }, /* IRQ #7 IRL=8 0x2e0 */ [all …]
|
/kernel/linux/linux-5.10/arch/x86/kvm/ |
D | irq_comm.c | 21 #include "irq.h" 48 struct kvm_lapic_irq *irq, struct dest_map *dest_map) in kvm_irq_delivery_to_apic() argument 55 if (kvm_irq_delivery_to_apic_fast(kvm, src, irq, &r, dest_map)) in kvm_irq_delivery_to_apic() 58 if (irq->dest_mode == APIC_DEST_PHYSICAL && in kvm_irq_delivery_to_apic() 59 irq->dest_id == 0xff && kvm_lowest_prio_delivery(irq)) { in kvm_irq_delivery_to_apic() 61 irq->delivery_mode = APIC_DM_FIXED; in kvm_irq_delivery_to_apic() 70 if (!kvm_apic_match_dest(vcpu, src, irq->shorthand, in kvm_irq_delivery_to_apic() 71 irq->dest_id, irq->dest_mode)) in kvm_irq_delivery_to_apic() 74 if (!kvm_lowest_prio_delivery(irq)) { in kvm_irq_delivery_to_apic() 77 r += kvm_apic_set_irq(vcpu, irq, dest_map); in kvm_irq_delivery_to_apic() [all …]
|
/kernel/linux/linux-5.10/kernel/irq/ |
D | manage.c | 6 * This file contains driver APIs to the irq subsystem. 11 #include <linux/irq.h> 78 * synchronize_hardirq - wait for pending hard IRQ handlers (on other CPUs) 79 * @irq: interrupt number to wait for 81 * This function waits for any pending hard IRQ handlers for this 83 * function while holding a resource the IRQ handler may need you 92 * This function may be called - with care - from IRQ context. 99 bool synchronize_hardirq(unsigned int irq) in synchronize_hardirq() argument 101 struct irq_desc *desc = irq_to_desc(irq); in synchronize_hardirq() 113 * synchronize_irq - wait for pending IRQ handlers (on other CPUs) [all …]
|