| /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/arch/x86/include/asm/trace/ |
| H A D | irq_vectors.h | 60 * irq_work - called when entering/exiting a irq work interrupt 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; 146 TP_printk("irq=%u vector=%u cpu=%u apicdest=0x%08x", 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 ) [all …]
|
| /linux/drivers/misc/ |
| H A 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 …]
|
| /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() 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 …]
|
| /linux/arch/m68k/virt/ |
| H A D | ints.c | 5 #include <linux/irq.h> 13 #include <asm/irq.h> 34 * 6 goldfish-pic for CPU IRQ #1 to IRQ #6 35 * CPU IRQ #1 -> PIC #1 36 * IRQ #1 to IRQ #31 -> unused 37 * IRQ #32 -> goldfish-tty 38 * CPU IRQ #2 -> PIC #2 39 * IRQ #1 to IRQ #32 -> virtio-mmio from 1 to 32 40 * CPU IRQ #3 -> PIC #3 41 * IRQ #1 to IRQ #32 -> virtio-mmio from 33 to 64 [all …]
|
| /linux/Documentation/arch/arm/ |
| H A 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 …]
|
| /linux/arch/arm64/kvm/vgic/ |
| H A D | vgic-v4.c | 8 #include <linux/irq.h> 29 * (ITS instance, device, event and irq) using a process that is 33 * identified by the routing entry) and the host irq, using the GICv4 70 * irq corresponding to the vcpu, then call its_make_vpe_resident(). 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() [all …]
|
| /linux/drivers/gpu/drm/amd/amdgpu/ |
| H A D | amdgpu_irq.c | 33 * passed to amdgpu IRQ handler which is responsible for detecting source and 41 * For GPU interrupt sources that may be driven by another driver, IRQ domain 45 #include <linux/irq.h> 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() 190 * amdgpu_irq_handler - IRQ handler 192 * @irq: IRQ number (unused) 195 * IRQ handler for amdgpu driver (all ASICs). [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() 76 pr_debug("%s: Setup irq %d (0x%0llx)\n", __func__, hwirq, 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 [all …]
|
| /linux/kernel/irq/ |
| H A D | manage.c | 6 * This file contains driver APIs to the irq subsystem. 11 #include <linux/irq.h> 85 * synchronize_hardirq - wait for pending hard IRQ handlers (on other CPUs) 86 * @irq: interrupt number to wait for 88 * This function waits for any pending hard IRQ handlers for this interrupt 90 * resource the IRQ handler may need you will deadlock. It does not take 98 * This function may be called - with care - from IRQ context. 105 bool synchronize_hardirq(unsigned int irq) in synchronize_hardirq() argument 107 struct irq_desc *desc = irq_to_desc(irq); in synchronize_hardirq() 131 * synchronize_irq - wait for pending IRQ handlers (on other CPUs) [all …]
|
| /linux/arch/m68k/q40/ |
| H A D | q40ints.c | 18 #include <linux/irq.h> 48 unsigned int irq = data->irq; in q40_irq_startup() local 51 switch (irq) { in q40_irq_startup() 54 pr_warn("%s: ISA IRQ %d not implemented by HW\n", __func__, in q40_irq_startup() 55 irq); in q40_irq_startup() 81 * the q40 IRQ handling routines. 98 master_outb(1, EXT_ENABLE_REG); /* ISA IRQ 5-15 */ in q40_init_IRQ() 100 /* make sure keyboard IRQ is disabled */ in q40_init_IRQ() 133 static irqreturn_t q40_timer_int(int irq, void *dev_id) in q40_timer_int() argument 169 * tables to translate bits into IRQ numbers [all …]
|
| /linux/arch/sh/boards/mach-dreamcast/ |
| H A D | irq.c | 3 * arch/sh/boards/dreamcast/irq.c 5 * Holly IRQ support for the Sega Dreamcast. 11 #include <linux/irq.h> 21 * hardware events from system peripherals and triggering an SH7750 IRQ. 31 * corresponds to an IRQ, so 0xa05f6910 - 0xa05f6918 triggers IRQ 13, 32 * 0xa05f6920 - 0xa05f6928 triggers IRQ 11, and 0xa05f6930 - 0xa05f6938 33 * triggers IRQ 9. 39 * 6900/6910 - Events 0-31, IRQ 13 40 * 6904/6924 - Events 32-63, IRQ 11 41 * 6908/6938 - Events 64-95, IRQ 9 [all …]
|
| /linux/drivers/base/power/ |
| H A D | wakeirq.c | 5 #include <linux/irq.h> 13 * dev_pm_attach_wake_irq - Attach device interrupt as a wake IRQ 15 * @wirq: Wake irq specific data 17 * Internal function to attach a dedicated wake-up interrupt as a wake IRQ. 28 "wake irq already initialized\n")) { in dev_pm_attach_wake_irq() 41 * dev_pm_set_wake_irq - Attach device IO interrupt as wake IRQ 43 * @irq: Device IO interrupt 45 * Attach a device IO interrupt as a wake IRQ. The wake IRQ gets 50 int dev_pm_set_wake_irq(struct device *dev, int irq) in dev_pm_set_wake_irq() argument 55 if (irq < 0) in dev_pm_set_wake_irq() [all …]
|
| /linux/arch/m68k/include/asm/ |
| H A D | atariints.h | 21 #include <asm/irq.h> 112 * the MFP. 'type' should be constant, if 'irq' is constant, too, code size is 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() [all …]
|
| /linux/drivers/ssb/ |
| H A D | driver_mipscore.c | 79 /* not irq supported */ in ssb_irqflag() 96 /* Get the MIPS IRQ assignment for a specified device. 108 unsigned int irq; in ssb_mips_irq() local 114 for (irq = 1; irq <= 4; irq++) { in ssb_mips_irq() 115 tmp = ((ipsflag & ipsflag_irq_mask[irq]) >> ipsflag_irq_shift[irq]); in ssb_mips_irq() 119 if (irq == 5) { in ssb_mips_irq() 121 irq = 0; in ssb_mips_irq() 124 return irq; in ssb_mips_irq() 127 static void clear_irq(struct ssb_bus *bus, unsigned int irq) in clear_irq() argument 131 /* Clear the IRQ in the MIPScore backplane registers */ in clear_irq() [all …]
|
| /linux/drivers/mfd/ |
| H A D | da9052-irq.c | 6 * Based on arizona-irq.c, which is: 17 #include <linux/irq.h> 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 [all …]
|
| /linux/arch/m68k/kernel/ |
| H A D | ints.c | 15 #include <linux/irq.h> 18 #include <asm/irq.h> 56 * the IRQ handling routines. 74 * standard do_IRQ(), it will be called with irq numbers in the range 107 * @chip: irq chip which controls specified irq 108 * @handle: flow handler which handles specified irq 109 * @irq: first irq to be managed by the controller 112 * Change the controller for the specified range of irq, which will be used to 113 * manage these irq. auto/user irq already have a default controller, which can 118 irq_flow_handler_t handle, unsigned int irq, in m68k_setup_irq_controller() argument [all …]
|
| /linux/arch/mips/bcm63xx/ |
| H A D | irq.c | 13 #include <linux/irq.h> 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() 68 * dispatch internal devices IRQ (uart, enet, watchdog, ...). do not 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; \ [all …]
|
| /linux/include/xen/ |
| H A D | events.h | 6 #include <linux/irq.h> 50 * Common unbind function for all event sources. Takes IRQ to unbind from. 54 void unbind_from_irqhandler(unsigned int irq, void *dev_id); 57 * Send late EOI for an IRQ bound to an event channel via one of the *_lateeoi 60 void xen_irq_lateeoi(unsigned int irq, unsigned int eoi_flags); 67 int xen_set_irq_priority(unsigned irq, unsigned priority); 77 void rebind_evtchn_irq(evtchn_port_t evtchn, int irq); 85 void notify_remote_via_irq(int irq); 89 /* Clear an irq's pending state, in preparation for polling on it */ 90 void xen_clear_irq_pending(int irq); [all …]
|
| /linux/arch/arm/mach-rpc/ |
| H A 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 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() [all …]
|
| /linux/arch/mips/sni/ |
| H A D | rm200.c | 16 #include <linux/irq.h> 30 .irq = _irq, \ 149 * This contains the irq mask for both 8259A irq controllers, 160 unsigned int mask, irq = d->irq - RM200_I8259A_IRQ_BASE; in sni_rm200_disable_8259A_irq() local 163 mask = 1 << irq; in sni_rm200_disable_8259A_irq() 166 if (irq & 8) in sni_rm200_disable_8259A_irq() 175 unsigned int mask, irq = d->irq - RM200_I8259A_IRQ_BASE; in sni_rm200_enable_8259A_irq() local 178 mask = ~(1 << irq); in sni_rm200_enable_8259A_irq() 181 if (irq & 8) in sni_rm200_enable_8259A_irq() 188 static inline int sni_rm200_i8259A_irq_real(unsigned int irq) in sni_rm200_i8259A_irq_real() argument [all …]
|
| /linux/drivers/irqchip/ |
| H A D | irq-i8259.c | 21 #include <linux/irq.h> 31 * this file should become arch/i386/kernel/irq.c when the old irq.c 61 * This contains the irq mask for both 8259A irq controllers, 70 unsigned int mask, irq = d->irq - I8259A_IRQ_BASE; in disable_8259A_irq() local 73 mask = 1 << irq; in disable_8259A_irq() 76 if (irq & 8) in disable_8259A_irq() 85 unsigned int mask, irq = d->irq - I8259A_IRQ_BASE; in enable_8259A_irq() local 88 mask = ~(1 << irq); in enable_8259A_irq() 91 if (irq & 8) in enable_8259A_irq() 98 void make_8259A_irq(unsigned int irq) in make_8259A_irq() argument [all …]
|
| /linux/arch/sh/boards/mach-se/7724/ |
| H A D | irq.c | 3 * linux/arch/sh/boards/se/7724/irq.c 9 * Based on linux/arch/sh/boards/se/7722/irq.c 15 #include <linux/irq.h> 30 static unsigned int fpga2irq(unsigned int irq) in fpga2irq() argument 32 if (irq >= IRQ0_BASE && in fpga2irq() 33 irq <= IRQ0_END) in fpga2irq() 35 else if (irq >= IRQ1_BASE && in fpga2irq() 36 irq <= IRQ1_END) in fpga2irq() 42 static struct fpga_irq get_fpga_irq(unsigned int irq) in get_fpga_irq() argument 46 switch (irq) { in get_fpga_irq() [all …]
|
| /linux/arch/x86/pci/ |
| H A D | irq.c | 18 #include <linux/irq.h> 57 int irq); 69 * Check passed address for the PCI IRQ Routing Table signature 99 * Handle the $IRT PCI IRQ Routing Table format used by AMI for its BCP 168 * Search 0xf0000 -- 0xfffff for the PCI IRQ Routing Table. 203 * If we have a IRQ routing table, use it to search for peer host 224 DBG(" %d:%02x/%04x", j, e->irq[j].link, e->irq[j].bitmap); in pirq_peer_trick() 239 * Code for querying and setting of IRQ routes on various interrupt routers. 243 void elcr_set_level_irq(unsigned int irq) in elcr_set_level_irq() argument 245 unsigned char mask = 1 << (irq & 7); in elcr_set_level_irq() [all …]
|
| /linux/arch/x86/kvm/ |
| H A D | i8259.c | 36 #include "irq.h" 74 static void pic_clear_isr(struct kvm_kpic_state *s, int irq) in pic_clear_isr() argument 76 s->isr &= ~(1 << irq); in pic_clear_isr() 78 irq += 8; in pic_clear_isr() 86 kvm_notify_acked_irq(s->pics_state->kvm, SELECT_PIC(irq), irq); in pic_clear_isr() 91 * set irq level. If an edge is detected, then the IRR is set to 1 93 static inline int pic_set_irq1(struct kvm_kpic_state *s, int irq, int level) in pic_set_irq1() argument 96 mask = 1 << irq; in pic_set_irq1() 121 * number). Return 8 if no irq 147 * master, the IRQ coming from the slave is not taken into account in pic_get_irq() [all …]
|