Home
last modified time | relevance | path

Searched refs:irq_data (Results 1 – 25 of 535) sorted by relevance

12345678910>>...22

/linux/drivers/net/ethernet/marvell/octeontx2/af/cn20k/
H A Dmbox_init.c40 struct rvu_irq_data *irq_data; in cn20k_register_afvf_mbox_intr() local
45 irq_data = devm_kcalloc(rvu->dev, 4, in cn20k_register_afvf_mbox_intr()
47 if (!irq_data) in cn20k_register_afvf_mbox_intr()
55 irq_data[vec].intr_status = in cn20k_register_afvf_mbox_intr()
57 irq_data[vec].start = 0; in cn20k_register_afvf_mbox_intr()
58 irq_data[vec].mdevs = 64; in cn20k_register_afvf_mbox_intr()
61 irq_data[vec].intr_status = in cn20k_register_afvf_mbox_intr()
63 irq_data[vec].start = 64; in cn20k_register_afvf_mbox_intr()
64 irq_data[vec].mdevs = 64; in cn20k_register_afvf_mbox_intr()
67 irq_data[vec].intr_status = in cn20k_register_afvf_mbox_intr()
[all …]
/linux/arch/x86/platform/uv/
H A Duv_irq.c48 static void uv_noop(struct irq_data *data) { } in uv_noop()
51 uv_set_irq_affinity(struct irq_data *data, const struct cpumask *mask, in uv_set_irq_affinity()
54 struct irq_data *parent = data->parent_data; in uv_set_irq_affinity()
80 struct irq_data *irq_data = irq_domain_get_irq_data(domain, virq); in uv_domain_alloc() local
87 irq_data_get_node(irq_data)); in uv_domain_alloc()
110 struct irq_data *irq_data = irq_domain_get_irq_data(domain, virq); in uv_domain_free() local
113 kfree(irq_data->chip_data); in uv_domain_free()
123 struct irq_data *irq_data, bool reserve) in uv_domain_activate() argument
125 uv_program_mmr(irqd_cfg(irq_data), irq_data->chip_data); in uv_domain_activate()
134 struct irq_data *irq_data) in uv_domain_deactivate() argument
[all …]
/linux/Documentation/translations/zh_CN/core-api/
H A Dgenericirq.rst107 这个高层IRQ处理函数只使用由分配的芯片描述符结构体引用的desc->irq_data.chip
176 default_enable(struct irq_data *data)
178 desc->irq_data.chip->irq_unmask(data);
181 default_disable(struct irq_data *data)
184 desc->irq_data.chip->irq_mask(data);
187 default_ack(struct irq_data *data)
192 default_mask_ack(struct irq_data *data)
202 noop(struct irq_data *data))
218 desc->irq_data.chip->irq_mask_ack();
220 desc->irq_data.chip->irq_unmask();
[all …]
/linux/kernel/irq/
H A Dmanage.c48 static int __irq_get_irqchip_state(struct irq_data *d, enum irqchip_irq_state which, bool *state);
52 struct irq_data *irqd = irq_desc_get_irq_data(desc); in __synchronize_hardirq()
60 while (irqd_irq_inprogress(&desc->irq_data)) in __synchronize_hardirq()
65 inprogress = irqd_irq_inprogress(&desc->irq_data); in __synchronize_hardirq()
159 if (!desc || !irqd_can_balance(&desc->irq_data) || in __irq_can_set_affinity()
160 !desc->irq_data.chip || !desc->irq_data.chip->irq_set_affinity) in __irq_can_set_affinity()
188 !irqd_affinity_is_managed(&desc->irq_data); in irq_can_set_affinity_usr()
217 static void irq_validate_effective_affinity(struct irq_data *data) in irq_validate_effective_affinity()
228 static inline void irq_validate_effective_affinity(struct irq_data *data) { } in irq_validate_effective_affinity()
233 int irq_do_set_affinity(struct irq_data *data, const struct cpumask *mask, bool force) in irq_do_set_affinity()
[all …]
H A Dmigration.c20 struct irq_data *data = irq_desc_get_irq_data(desc); in irq_fixup_move_pending()
40 for (struct irq_data *d = irq_desc_get_irq_data(desc); d; d = irqd_get_parent_data(d)) { in irq_force_complete_move()
48 void irq_move_masked_irq(struct irq_data *idata) in irq_move_masked_irq()
51 struct irq_data *data = &desc->irq_data; in irq_move_masked_irq()
104 void __irq_move_irq(struct irq_data *idata) in __irq_move_irq()
131 bool irq_can_move_in_process_context(struct irq_data *data) in irq_can_move_in_process_context()
H A Dresend.c55 if (irqd_is_handle_enforce_irqctx(&desc->irq_data)) in irq_sw_resend()
107 if (desc->irq_data.chip->irq_retrigger) in try_retrigger()
108 return desc->irq_data.chip->irq_retrigger(&desc->irq_data); in try_retrigger()
111 return irq_chip_retrigger_hierarchy(&desc->irq_data); in try_retrigger()
188 if (!irq_is_nmi(desc) && irqd_is_activated(&desc->irq_data)) in irq_inject_interrupt()
H A Dpm.c18 irqd_clear(&desc->irq_data, IRQD_WAKEUP_ARMED); in irq_pm_handle_wakeup()
68 struct irq_data *irqd = &desc->irq_data; in suspend_device_irq()
146 struct irq_data *irqd = &desc->irq_data; in resume_irq()
203 if (!(desc->istate & IRQS_SUSPENDED) || !irqd_is_wakeup_set(&desc->irq_data)) in rearm_wake_irq()
207 irqd_set(&desc->irq_data, IRQD_WAKEUP_ARMED); in rearm_wake_irq()
/linux/arch/sparc/kernel/
H A Dprom_irqtrans.c118 struct sabre_irq_data *irq_data = _arg2; in sabre_wsync_handler() local
119 unsigned long controller_regs = irq_data->controller_regs; in sabre_wsync_handler()
226 struct sabre_irq_data *irq_data = _data; in sabre_irq_build() local
227 unsigned long controller_regs = irq_data->controller_regs; in sabre_irq_build()
264 (void *) irq_data); in sabre_irq_build()
273 struct sabre_irq_data *irq_data; in sabre_irq_trans_init() local
279 irq_data = prom_early_alloc(sizeof(struct sabre_irq_data)); in sabre_irq_trans_init()
282 irq_data->controller_regs = regs[0].phys_addr; in sabre_irq_trans_init()
285 irq_data->pci_first_busno = busrange[0]; in sabre_irq_trans_init()
287 dp->irq_trans->data = irq_data; in sabre_irq_trans_init()
[all …]
/linux/drivers/mfd/
H A Drc5t583-irq.c140 static void rc5t583_irq_lock(struct irq_data *irq_data) in rc5t583_irq_lock() argument
142 struct rc5t583 *rc5t583 = irq_data_get_irq_chip_data(irq_data); in rc5t583_irq_lock()
146 static void rc5t583_irq_unmask(struct irq_data *irq_data) in rc5t583_irq_unmask() argument
148 struct rc5t583 *rc5t583 = irq_data_get_irq_chip_data(irq_data); in rc5t583_irq_unmask()
149 unsigned int __irq = irq_data->irq - rc5t583->irq_base; in rc5t583_irq_unmask()
157 static void rc5t583_irq_mask(struct irq_data *irq_data) in rc5t583_irq_mask() argument
159 struct rc5t583 *rc5t583 = irq_data_get_irq_chip_data(irq_data); in rc5t583_irq_mask()
160 unsigned int __irq = irq_data->irq - rc5t583->irq_base; in rc5t583_irq_mask()
170 static int rc5t583_irq_set_type(struct irq_data *irq_data, unsigned int type) in rc5t583_irq_set_type() argument
172 struct rc5t583 *rc5t583 = irq_data_get_irq_chip_data(irq_data); in rc5t583_irq_set_type()
[all …]
H A Dqcom-pm8008.c109 const struct regmap_irq *irq_data, int idx, in pm8008_set_type_config() argument
115 buf[POLARITY_HI_INDEX][idx] &= ~irq_data->mask; in pm8008_set_type_config()
116 buf[POLARITY_LO_INDEX][idx] |= irq_data->mask; in pm8008_set_type_config()
121 buf[POLARITY_HI_INDEX][idx] |= irq_data->mask; in pm8008_set_type_config()
122 buf[POLARITY_LO_INDEX][idx] &= ~irq_data->mask; in pm8008_set_type_config()
126 buf[POLARITY_HI_INDEX][idx] |= irq_data->mask; in pm8008_set_type_config()
127 buf[POLARITY_LO_INDEX][idx] |= irq_data->mask; in pm8008_set_type_config()
135 buf[SET_TYPE_INDEX][idx] |= irq_data->mask; in pm8008_set_type_config()
137 buf[SET_TYPE_INDEX][idx] &= ~irq_data->mask; in pm8008_set_type_config()
195 struct regmap_irq_chip_data *irq_data; in pm8008_probe() local
[all …]
H A Dmax8925-core.c474 struct max8925_irq_data *irq_data; in max8925_irq() local
480 irq_data = &max8925_irqs[i]; in max8925_irq()
482 if (irq_data->tsc_irq) in max8925_irq()
484 if (irq_data->flags == FLAGS_RTC) in max8925_irq()
486 else if (irq_data->flags == FLAGS_ADC) in max8925_irq()
490 if (read_reg != irq_data->reg) { in max8925_irq()
491 read_reg = irq_data->reg; in max8925_irq()
492 value = max8925_reg_read(i2c, irq_data->reg); in max8925_irq()
494 if (value & irq_data->enable) in max8925_irq()
503 struct max8925_irq_data *irq_data; in max8925_tsc_irq() local
[all …]
H A Dmax8998-irq.c95 irq_to_max8998_irq(struct max8998_dev *max8998, struct irq_data *data) in irq_to_max8998_irq()
100 static void max8998_irq_lock(struct irq_data *data) in max8998_irq_lock()
107 static void max8998_irq_sync_unlock(struct irq_data *data) in max8998_irq_sync_unlock()
127 static void max8998_irq_unmask(struct irq_data *data) in max8998_irq_unmask()
130 struct max8998_irq_data *irq_data = irq_to_max8998_irq(max8998, data); in max8998_irq_unmask() local
132 max8998->irq_masks_cur[irq_data->reg - 1] &= ~irq_data->mask; in max8998_irq_unmask()
135 static void max8998_irq_mask(struct irq_data *data) in max8998_irq_mask()
138 struct max8998_irq_data *irq_data = irq_to_max8998_irq(max8998, data); in max8998_irq_mask() local
140 max8998->irq_masks_cur[irq_data->reg - 1] |= irq_data->mask; in max8998_irq_mask()
/linux/drivers/irqchip/
H A Dirq-gic-v5.c100 static void gicv5_ppi_irq_mask(struct irq_data *d) in gicv5_ppi_irq_mask()
118 static void gicv5_iri_irq_mask(struct irq_data *d, u8 hwirq_type) in gicv5_iri_irq_mask()
139 static void gicv5_spi_irq_mask(struct irq_data *d) in gicv5_spi_irq_mask()
144 static void gicv5_lpi_irq_mask(struct irq_data *d) in gicv5_lpi_irq_mask()
149 static void gicv5_ppi_irq_unmask(struct irq_data *d) in gicv5_ppi_irq_unmask()
167 static void gicv5_iri_irq_unmask(struct irq_data *d, u8 hwirq_type) in gicv5_iri_irq_unmask()
181 static void gicv5_spi_irq_unmask(struct irq_data *d) in gicv5_spi_irq_unmask()
186 static void gicv5_lpi_irq_unmask(struct irq_data *d) in gicv5_lpi_irq_unmask()
201 static void gicv5_ppi_irq_eoi(struct irq_data *d) in gicv5_ppi_irq_eoi()
210 static void gicv5_spi_irq_eoi(struct irq_data *d) in gicv5_spi_irq_eoi()
[all …]
H A Dirq-xtensa-mx.c70 static void xtensa_mx_irq_mask(struct irq_data *d) in xtensa_mx_irq_mask()
88 static void xtensa_mx_irq_unmask(struct irq_data *d) in xtensa_mx_irq_unmask()
106 static void xtensa_mx_irq_enable(struct irq_data *d) in xtensa_mx_irq_enable()
111 static void xtensa_mx_irq_disable(struct irq_data *d) in xtensa_mx_irq_disable()
116 static void xtensa_mx_irq_ack(struct irq_data *d) in xtensa_mx_irq_ack()
121 static int xtensa_mx_irq_retrigger(struct irq_data *d) in xtensa_mx_irq_retrigger()
131 static int xtensa_mx_irq_set_affinity(struct irq_data *d, in xtensa_mx_irq_set_affinity()
/linux/drivers/net/ethernet/marvell/octeontx2/nic/
H A Dcn20k.c149 struct pf_irq_data *irq_data = pf_irq; in cn20k_pfvf_mbox_intr_handler() local
150 struct otx2_nic *pf = irq_data->pf; in cn20k_pfvf_mbox_intr_handler()
158 intr = otx2_read64(pf, irq_data->intr_status); in cn20k_pfvf_mbox_intr_handler()
159 otx2_write64(pf, irq_data->intr_status, intr); in cn20k_pfvf_mbox_intr_handler()
165 irq_data->pf_queue_work_hdlr(mbox, pf->mbox_pfvf_wq, irq_data->start, in cn20k_pfvf_mbox_intr_handler()
166 irq_data->mdevs, intr); in cn20k_pfvf_mbox_intr_handler()
174 struct pf_irq_data *irq_data; in cn20k_register_pfvf_mbox_intr() local
179 irq_data = devm_kcalloc(pf->dev, 4, in cn20k_register_pfvf_mbox_intr()
181 if (!irq_data) in cn20k_register_pfvf_mbox_intr()
[all...]
/linux/drivers/gpio/
H A Dgpio-zynq.c407 static void zynq_gpio_irq_mask(struct irq_data *irq_data) in zynq_gpio_irq_mask() argument
410 const unsigned long offset = irqd_to_hwirq(irq_data); in zynq_gpio_irq_mask()
411 struct gpio_chip *chip = irq_data_get_irq_chip_data(irq_data); in zynq_gpio_irq_mask()
413 gpiochip_get_data(irq_data_get_irq_chip_data(irq_data)); in zynq_gpio_irq_mask()
416 device_pin_num = irq_data->hwirq; in zynq_gpio_irq_mask()
431 static void zynq_gpio_irq_unmask(struct irq_data *irq_data) in zynq_gpio_irq_unmask() argument
434 const unsigned long offset = irqd_to_hwirq(irq_data); in zynq_gpio_irq_unmask()
435 struct gpio_chip *chip = irq_data_get_irq_chip_data(irq_data); in zynq_gpio_irq_unmask()
437 gpiochip_get_data(irq_data_get_irq_chip_data(irq_data)); in zynq_gpio_irq_unmask()
440 device_pin_num = irq_data->hwirq; in zynq_gpio_irq_unmask()
[all …]
/linux/arch/m68k/atari/
H A Dataints.c85 static unsigned int atari_irq_startup(struct irq_data *data) in atari_irq_startup()
95 static void atari_irq_shutdown(struct irq_data *data) in atari_irq_shutdown()
107 static void atari_irq_enable(struct irq_data *data) in atari_irq_enable()
112 static void atari_irq_disable(struct irq_data *data) in atari_irq_disable()
160 static void atari_mfptimer_enable(struct irq_data *data) in atari_mfptimer_enable()
167 static void atari_mfptimer_disable(struct irq_data *data) in atari_mfptimer_disable()
193 static unsigned int atari_ethernat_startup(struct irq_data *data) in atari_ethernat_startup()
215 static void atari_ethernat_enable(struct irq_data *data) in atari_ethernat_enable()
226 static void atari_ethernat_disable(struct irq_data *data) in atari_ethernat_disable()
237 static void atari_ethernat_shutdown(struct irq_data *data) in atari_ethernat_shutdown()
/linux/include/linux/irqchip/
H A Dchained_irq.h24 chip->irq_mask_ack(&desc->irq_data); in chained_irq_enter()
26 chip->irq_mask(&desc->irq_data); in chained_irq_enter()
28 chip->irq_ack(&desc->irq_data); in chained_irq_enter()
36 chip->irq_eoi(&desc->irq_data); in chained_irq_exit()
38 chip->irq_unmask(&desc->irq_data); in chained_irq_exit()
/linux/arch/m68k/mac/
H A Dmacints.c131 static unsigned int mac_irq_startup(struct irq_data *);
132 static void mac_irq_shutdown(struct irq_data *);
188 void mac_irq_enable(struct irq_data *data) in mac_irq_enable()
218 void mac_irq_disable(struct irq_data *data) in mac_irq_disable()
248 static unsigned int mac_irq_startup(struct irq_data *data) in mac_irq_startup()
260 static void mac_irq_shutdown(struct irq_data *data) in mac_irq_shutdown()
/linux/arch/mips/cavium-octeon/
H A Docteon-irq.c120 struct irq_data *data = irq_get_irq_data(irq); in octeon_irq_free_cd()
161 static void octeon_irq_core_ack(struct irq_data *data) in octeon_irq_core_ack()
177 static void octeon_irq_core_eoi(struct irq_data *data) in octeon_irq_core_eoi()
191 struct irq_data *data = arg; in octeon_irq_core_set_enable_local()
205 static void octeon_irq_core_disable(struct irq_data *data) in octeon_irq_core_disable()
211 static void octeon_irq_core_enable(struct irq_data *data) in octeon_irq_core_enable()
217 static void octeon_irq_core_bus_lock(struct irq_data *data) in octeon_irq_core_bus_lock()
224 static void octeon_irq_core_bus_sync_unlock(struct irq_data *data) in octeon_irq_core_bus_sync_unlock()
271 static int next_cpu_for_irq(struct irq_data *data) in next_cpu_for_irq()
303 static void octeon_irq_ciu_enable(struct irq_data *data) in octeon_irq_ciu_enable()
[all …]
/linux/arch/powerpc/platforms/52xx/
H A Dmpc52xx_pic.c159 static void mpc52xx_extirq_mask(struct irq_data *d) in mpc52xx_extirq_mask()
165 static void mpc52xx_extirq_unmask(struct irq_data *d) in mpc52xx_extirq_unmask()
171 static void mpc52xx_extirq_ack(struct irq_data *d) in mpc52xx_extirq_ack()
177 static int mpc52xx_extirq_set_type(struct irq_data *d, unsigned int flow_type) in mpc52xx_extirq_set_type()
216 static int mpc52xx_null_set_type(struct irq_data *d, unsigned int flow_type) in mpc52xx_null_set_type()
221 static void mpc52xx_main_mask(struct irq_data *d) in mpc52xx_main_mask()
227 static void mpc52xx_main_unmask(struct irq_data *d) in mpc52xx_main_unmask()
244 static void mpc52xx_periph_mask(struct irq_data *d) in mpc52xx_periph_mask()
250 static void mpc52xx_periph_unmask(struct irq_data *d) in mpc52xx_periph_unmask()
267 static void mpc52xx_sdma_mask(struct irq_data *d) in mpc52xx_sdma_mask()
[all …]
/linux/arch/x86/include/asm/
H A Dirqdomain.h26 struct irq_data;
48 struct irq_data *irq_data, bool reserve);
50 struct irq_data *irq_data);
/linux/Documentation/translations/zh_CN/core-api/irq/
H A Dirq-domain.rst70 如果驱动程序有Linux的IRQ号或irq_data指针,并且需要知道相关的hwirq号(比
71 如在irq_chip回调中),那么可以直接从irq_data->hwirq中获得。
204 2) 一个新的字段 'parent_data' 被添加到irq_data结构中;它用于建立层次结构irq_data以
205 匹配irq_domain层次结构。irq_data用于存储irq_domain指针和硬件irq号。
208 在支持分层irq_domain和分层irq_data准备就绪后,为每个中断控制器建立一个irq_domain结
209 构,并为每个与IRQ相关联的irq_domain分配一个irq_data结构。现在我们可以再进一步支持堆
210 栈式(层次结构)的irq_chip。也就是说,一个irq_chip与层次结构中的每个irq_data相关联。
/linux/arch/x86/kernel/apic/
H A Dvector.c89 static struct apic_chip_data *apic_chip_data(struct irq_data *irqd) in apic_chip_data()
100 struct irq_cfg *irqd_cfg(struct irq_data *irqd) in irqd_cfg()
128 static void apic_update_irq_cfg(struct irq_data *irqd, unsigned int vector, in apic_update_irq_cfg()
150 static void chip_data_update(struct irq_data *irqd, unsigned int newvec, unsigned int newcpu) in chip_data_update()
195 static void vector_assign_managed_shutdown(struct irq_data *irqd) in vector_assign_managed_shutdown()
202 static int reserve_managed_vector(struct irq_data *irqd) in reserve_managed_vector()
217 static void reserve_irq_vector_locked(struct irq_data *irqd) in reserve_irq_vector_locked()
229 static int reserve_irq_vector(struct irq_data *irqd) in reserve_irq_vector()
240 assign_vector_locked(struct irq_data *irqd, const struct cpumask *dest) in assign_vector_locked()
275 static int assign_irq_vector(struct irq_data *irqd, const struct cpumask *dest) in assign_irq_vector()
[all …]
/linux/drivers/usb/typec/tcpm/qcom/
H A Dqcom_pmic_typec_pdphy.c98 struct pmic_typec_pdphy_irq_data *irq_data; member
376 struct pmic_typec_pdphy_irq_data *irq_data = dev_id; in qcom_pmic_typec_pdphy_isr() local
377 struct pmic_typec_pdphy *pmic_typec_pdphy = irq_data->pmic_typec_pdphy; in qcom_pmic_typec_pdphy_isr()
380 switch (irq_data->virq) { in qcom_pmic_typec_pdphy_isr()
528 enable_irq(pmic_typec_pdphy->irq_data[i].irq); in qcom_pmic_typec_pdphy_start()
544 disable_irq(pmic_typec_pdphy->irq_data[i].irq); in qcom_pmic_typec_pdphy_stop()
561 struct pmic_typec_pdphy_irq_data *irq_data; in qcom_pmic_typec_pdphy_probe() local
571 irq_data = devm_kcalloc(dev, res->nr_irqs, sizeof(*irq_data), in qcom_pmic_typec_pdphy_probe()
573 if (!irq_data) in qcom_pmic_typec_pdphy_probe()
584 pmic_typec_pdphy->irq_data = irq_data; in qcom_pmic_typec_pdphy_probe()
[all …]

12345678910>>...22