Home
last modified time | relevance | path

Searched full:irq (Results 1 – 25 of 7038) sorted by relevance

12345678910>>...282

/linux/drivers/misc/ocxl/
H A Dafu_irq.c35 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/staging/media/atomisp/pci/hive_isp_css_include/host/
H A Dirq_public.h13 /*! Write to a control register of IRQ[ID]
15 \param ID[in] IRQ identifier
19 \return none, IRQ[ID].ctrl[reg] = value
26 /*! Read from a control register of IRQ[ID]
28 \param ID[in] IRQ identifier
32 \return IRQ[ID].ctrl[reg]
38 /*! Enable an IRQ channel of IRQ[ID] with a mode
40 \param ID[in] IRQ (device) identifier
41 \param irq[in] IRQ (channel) identifier
43 \return none, enable(IRQ[ID].channel[irq_ID])
[all …]
/linux/drivers/net/ethernet/mellanox/mlx5/core/
H A Dpci_irq.c145 /* mlx5_system_free_irq - Free an IRQ
146 * @irq: IRQ to free
148 * Free the IRQ and other resources such as rmap from the system.
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()
[all …]
/linux/drivers/acpi/
H A Dpci_link.c10 * 1. Support more than one IRQ resource entry per link device (index).
12 * for IRQ management (e.g. start()->_SRS).
28 #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
97 struct acpi_resource_irq *p = &resource->data.irq; in acpi_pci_link_check_possible()
100 "Blank _PRS IRQ resource\n"); in acpi_pci_link_check_possible()
108 "Invalid _PRS IRQ %d\n", in acpi_pci_link_check_possible()
112 link->irq.possible[i] = p->interrupts[i]; in acpi_pci_link_check_possible()
[all …]
H A Dirq.c3 * ACPI GSI IRQ layer
9 #include <linux/irq.h>
19 * acpi_gsi_to_irq() - Retrieve the linux irq number for a given GSI
20 * @gsi: GSI IRQ number to map
21 * @irq: pointer where linux IRQ number is stored
23 * irq location updated with irq value [>0 on success, 0 on failure]
28 int acpi_gsi_to_irq(u32 gsi, unsigned int *irq) in acpi_gsi_to_irq() argument
34 *irq = irq_find_mapping(d, gsi); in acpi_gsi_to_irq()
36 * *irq == 0 means no mapping, that should be reported as a in acpi_gsi_to_irq()
39 if (!*irq && acpi_gsi_to_irq_fallback) in acpi_gsi_to_irq()
[all …]
/linux/arch/arm64/kvm/vgic/
H A Dvgic-mmio.c9 #include <linux/irq.h>
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()
[all …]
H A Dvgic.c7 #include <linux/irq.h>
62 * Index the VM's xarray of mapped LPIs and return a reference to the IRQ
64 * finished with the IRQ.
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()
85 * to call vgic_put_irq() once it's finished with this IRQ.
117 static void vgic_release_lpi_locked(struct vgic_dist *dist, struct vgic_irq *irq) in vgic_release_lpi_locked() argument
[all …]
H A Dvgic-v4.c8 #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/arch/x86/include/asm/trace/
H A Dirq_vectors.h60 * 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/parisc/
H A Dgsc.c35 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/drivers/misc/
H A Ddummy-irq.c3 * 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/arch/m68k/coldfire/
H A Dintc-simr.c17 #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 > 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()
[all …]
H A Dintc-2.c24 #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 …]
H A Dintc-5272.c16 #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 …]
/linux/drivers/gpu/drm/amd/amdgpu/
H A Damdgpu_irq.c33 * 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/Documentation/arch/arm/
H A Dinterrupts.rst16 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/m68k/virt/
H A Dints.c5 #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/kernel/irq/
H A Dmanage.c6 * 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 …]
H A Dirqdesc.c10 #include <linux/irq.h>
120 static void desc_set_defaults(unsigned int irq, struct irq_desc *desc, int node, in desc_set_defaults() argument
127 desc->irq_data.irq = irq; in desc_set_defaults()
195 static void irq_insert_desc(unsigned int irq, struct irq_desc *desc) in irq_insert_desc() argument
197 MA_STATE(mas, &sparse_irqs, irq, irq); in irq_insert_desc()
201 static void delete_irq_desc(unsigned int irq) in delete_irq_desc() argument
203 MA_STATE(mas, &sparse_irqs, irq, irq); in delete_irq_desc()
211 static int init_desc(struct irq_desc *desc, int irq, int node, in init_desc() argument
229 desc_set_defaults(irq, desc, node, affinity, owner); in init_desc()
351 ATTRIBUTE_GROUPS(irq);
[all …]
/linux/drivers/xen/events/
H A Devents_base.c9 * chip. When an event is received, it is mapped to an irq and sent
29 #include <linux/irq.h>
46 #include <asm/irq.h>
86 * Packed IRQ information:
88 * event channel - irq->event channel mapping
91 * PIRQ - vector, with MSB being "needs EIO", or physical IRQ of the HVM
92 * guest, or GSI (real passthrough IRQ) of the device.
110 unsigned irq; member
155 * IRQ-desc lock
162 /* IRQ <-> VIRQ mapping. */
[all …]
/linux/arch/powerpc/platforms/44x/
H A Dhsta_msi.c42 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/include/linux/
H A Dinterrupt.h21 #include <asm/irq.h>
42 * irq handling routines.
44 * IRQF_SHARED - allow sharing the irq among several devices
48 * IRQF_NOBALANCING - Flag to exclude this interrupt from irq balancing
54 * irq line disabled until the threaded handler has been run.
55 * IRQF_NO_SUSPEND - Do not disable this IRQ during suspend. Does not guarantee
60 * IRQF_EARLY_RESUME - Resume IRQ early during syscore instead of at device
62 * IRQF_COND_SUSPEND - If the IRQ is shared with a NO_SUSPEND user, execute this
66 * IRQF_NO_AUTOEN - Don't enable IRQ or NMI automatically when users request it.
114 * @irq
134 unsigned int irq; global() member
173 request_irq(unsigned int irq,irq_handler_t handler,unsigned long flags,const char * name,void * dev) request_irq() argument
193 request_percpu_irq(unsigned int irq,irq_handler_t handler,const char * devname,void __percpu * percpu_dev_id) request_percpu_irq() argument
201 request_percpu_irq_affinity(unsigned int irq,irq_handler_t handler,const char * devname,const cpumask_t * affinity,void __percpu * percpu_dev_id) request_percpu_irq_affinity() argument
228 devm_request_irq(struct device * dev,unsigned int irq,irq_handler_t handler,unsigned long irqflags,const char * devname,void * dev_id) devm_request_irq() argument
282 unsigned int irq; global() member
345 irq_update_affinity_hint(unsigned int irq,const struct cpumask * m) irq_update_affinity_hint() argument
360 irq_set_affinity_and_hint(unsigned int irq,const struct cpumask * m) irq_set_affinity_and_hint() argument
369 irq_set_affinity_hint(unsigned int irq,const struct cpumask * m) irq_set_affinity_hint() argument
388 irq_set_affinity(unsigned int irq,const struct cpumask * m) irq_set_affinity() argument
393 irq_force_affinity(unsigned int irq,const struct cpumask * cpumask) irq_force_affinity() argument
398 irq_can_set_affinity(unsigned int irq) irq_can_set_affinity() argument
403 irq_select_affinity(unsigned int irq) irq_select_affinity() argument
405 irq_update_affinity_hint(unsigned int irq,const struct cpumask * m) irq_update_affinity_hint() argument
411 irq_set_affinity_and_hint(unsigned int irq,const struct cpumask * m) irq_set_affinity_and_hint() argument
417 irq_set_affinity_hint(unsigned int irq,const struct cpumask * m) irq_set_affinity_hint() argument
423 irq_update_affinity_desc(unsigned int irq,struct irq_affinity_desc * affinity) irq_update_affinity_desc() argument
430 irq_set_affinity_notifier(unsigned int irq,struct irq_affinity_notify * notify) irq_set_affinity_notifier() argument
461 disable_irq_nosync_lockdep(unsigned int irq) disable_irq_nosync_lockdep() argument
469 disable_irq_nosync_lockdep_irqsave(unsigned int irq,unsigned long * flags) disable_irq_nosync_lockdep_irqsave() argument
477 enable_irq_lockdep(unsigned int irq) enable_irq_lockdep() argument
485 enable_irq_lockdep_irqrestore(unsigned int irq,unsigned long * flags) enable_irq_lockdep_irqrestore() argument
496 enable_irq_wake(unsigned int irq) enable_irq_wake() argument
501 disable_irq_wake(unsigned int irq) disable_irq_wake() argument
[all...]
/linux/arch/m68k/q40/
H A Dq40ints.c18 #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/drivers/base/power/
H A Dwakeirq.c5 #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/drivers/mfd/
H A Darizona-irq.c13 #include <linux/irq.h>
29 static int arizona_map_irq(struct arizona *arizona, int irq) in arizona_map_irq() argument
34 ret = regmap_irq_get_virq(arizona->aod_irq_chip, irq); in arizona_map_irq()
39 return regmap_irq_get_virq(arizona->irq_chip, irq); in arizona_map_irq()
42 int arizona_request_irq(struct arizona *arizona, int irq, char *name, in arizona_request_irq() argument
45 irq = arizona_map_irq(arizona, irq); in arizona_request_irq()
46 if (irq < 0) in arizona_request_irq()
47 return irq; in arizona_request_irq()
49 return request_threaded_irq(irq, NULL, handler, IRQF_ONESHOT, in arizona_request_irq()
54 void arizona_free_irq(struct arizona *arizona, int irq, void *data) in arizona_free_irq() argument
[all …]

12345678910>>...282