| /Linux-v6.1/include/linux/ |
| D | irq.h | 179 struct irq_data { struct 187 struct irq_data *parent_data; argument 256 static inline bool irqd_is_setaffinity_pending(struct irq_data *d) in irqd_is_setaffinity_pending() 261 static inline bool irqd_is_per_cpu(struct irq_data *d) in irqd_is_per_cpu() 266 static inline bool irqd_can_balance(struct irq_data *d) in irqd_can_balance() 271 static inline bool irqd_affinity_was_set(struct irq_data *d) in irqd_affinity_was_set() 276 static inline void irqd_mark_affinity_was_set(struct irq_data *d) in irqd_mark_affinity_was_set() 281 static inline bool irqd_trigger_type_was_set(struct irq_data *d) in irqd_trigger_type_was_set() 286 static inline u32 irqd_get_trigger_type(struct irq_data *d) in irqd_get_trigger_type() 295 static inline void irqd_set_trigger_type(struct irq_data *d, u32 type) in irqd_set_trigger_type() [all …]
|
| D | irqdesc.h | 57 struct irq_data irq_data; member 122 static inline struct irq_desc *irq_data_to_desc(struct irq_data *data) in irq_data_to_desc() 129 return desc->irq_data.irq; in irq_desc_get_irq() 132 static inline struct irq_data *irq_desc_get_irq_data(struct irq_desc *desc) in irq_desc_get_irq_data() 134 return &desc->irq_data; in irq_desc_get_irq_data() 139 return desc->irq_data.chip; in irq_desc_get_chip() 144 return desc->irq_data.chip_data; in irq_desc_get_chip_data() 192 static inline void irq_set_handler_locked(struct irq_data *data, in irq_set_handler_locked() 213 irq_set_chip_handler_name_locked(struct irq_data *data, in irq_set_chip_handler_name_locked()
|
| /Linux-v6.1/kernel/irq/ |
| D | chip.c | 49 desc->irq_data.chip = (struct irq_chip *)(chip ?: &no_irq_chip); in irq_set_chip() 149 desc->irq_data.chip_data = data; in irq_set_chip_data() 155 struct irq_data *irq_get_irq_data(unsigned int irq) in irq_get_irq_data() 159 return desc ? &desc->irq_data : NULL; in irq_get_irq_data() 165 irqd_clear(&desc->irq_data, IRQD_IRQ_DISABLED); in irq_state_clr_disabled() 170 irqd_clear(&desc->irq_data, IRQD_IRQ_MASKED); in irq_state_clr_masked() 175 irqd_clear(&desc->irq_data, IRQD_IRQ_STARTED); in irq_state_clr_started() 180 irqd_set(&desc->irq_data, IRQD_IRQ_STARTED); in irq_state_set_started() 194 struct irq_data *d = irq_desc_get_irq_data(desc); in __irq_startup_managed() 237 struct irq_data *d = irq_desc_get_irq_data(desc); in __irq_startup() [all …]
|
| D | irqdomain.c | 518 struct irq_data *irq_data) in irq_domain_set_mapping() argument 525 rcu_assign_pointer(domain->revmap[hwirq], irq_data); in irq_domain_set_mapping() 527 radix_tree_insert(&domain->revmap_tree, hwirq, irq_data); in irq_domain_set_mapping() 533 struct irq_data *irq_data = irq_get_irq_data(irq); in irq_domain_disassociate() local 536 if (WARN(!irq_data || irq_data->domain != domain, in irq_domain_disassociate() 540 hwirq = irq_data->hwirq; in irq_domain_disassociate() 554 irq_data->domain = NULL; in irq_domain_disassociate() 555 irq_data->hwirq = 0; in irq_domain_disassociate() 565 struct irq_data *irq_data = irq_get_irq_data(virq); in irq_domain_associate() local 571 if (WARN(!irq_data, "error: virq%i is not allocated", virq)) in irq_domain_associate() [all …]
|
| D | internals.h | 102 extern int __irq_get_irqchip_state(struct irq_data *data, 135 extern int irq_do_set_affinity(struct irq_data *data, 147 if (unlikely(desc->irq_data.chip->irq_bus_lock)) in chip_bus_lock() 148 desc->irq_data.chip->irq_bus_lock(&desc->irq_data); in chip_bus_lock() 153 if (unlikely(desc->irq_data.chip->irq_bus_sync_unlock)) in chip_bus_sync_unlock() 154 desc->irq_data.chip->irq_bus_sync_unlock(&desc->irq_data); in chip_bus_sync_unlock() 197 static inline unsigned int irqd_get(struct irq_data *d) in irqd_get() 205 static inline void irqd_set_move_pending(struct irq_data *d) in irqd_set_move_pending() 210 static inline void irqd_clr_move_pending(struct irq_data *d) in irqd_clr_move_pending() 215 static inline void irqd_set_managed_shutdown(struct irq_data *d) in irqd_set_managed_shutdown() [all …]
|
| D | manage.c | 40 struct irq_data *irqd = irq_desc_get_irq_data(desc); in __synchronize_hardirq() 50 while (irqd_irq_inprogress(&desc->irq_data)) in __synchronize_hardirq() 55 inprogress = irqd_irq_inprogress(&desc->irq_data); in __synchronize_hardirq() 148 if (!desc || !irqd_can_balance(&desc->irq_data) || in __irq_can_set_affinity() 149 !desc->irq_data.chip || !desc->irq_data.chip->irq_set_affinity) in __irq_can_set_affinity() 176 !irqd_affinity_is_managed(&desc->irq_data); in irq_can_set_affinity_usr() 198 static void irq_validate_effective_affinity(struct irq_data *data) in irq_validate_effective_affinity() 209 static inline void irq_validate_effective_affinity(struct irq_data *data) { } in irq_validate_effective_affinity() 212 int irq_do_set_affinity(struct irq_data *data, const struct cpumask *mask, in irq_do_set_affinity() 291 static inline int irq_set_affinity_pending(struct irq_data *data, in irq_set_affinity_pending() [all …]
|
| D | pm.c | 18 if (irqd_is_wakeup_armed(&desc->irq_data)) { in irq_pm_check_wakeup() 19 irqd_clear(&desc->irq_data, IRQD_WAKEUP_ARMED); in irq_pm_check_wakeup() 73 struct irq_data *irqd = &desc->irq_data; in suspend_device_irq() 153 struct irq_data *irqd = &desc->irq_data; in resume_irq() 217 !irqd_is_wakeup_set(&desc->irq_data)) in rearm_wake_irq() 221 irqd_set(&desc->irq_data, IRQD_WAKEUP_ARMED); in rearm_wake_irq()
|
| /Linux-v6.1/drivers/iommu/ |
| D | hyperv-iommu.c | 39 static int hyperv_ir_set_affinity(struct irq_data *data, in hyperv_ir_set_affinity() 42 struct irq_data *parent = data->parent_data; in hyperv_ir_set_affinity() 70 struct irq_data *irq_data; in hyperv_irq_remapping_alloc() local 80 irq_data = irq_domain_get_irq_data(domain, virq); in hyperv_irq_remapping_alloc() 81 if (!irq_data) { in hyperv_irq_remapping_alloc() 86 irq_data->chip = &hyperv_ir_chip; in hyperv_irq_remapping_alloc() 92 irq_data_update_affinity(irq_data, &ioapic_max_cpumask); in hyperv_irq_remapping_alloc() 189 hyperv_root_ir_compose_msi_msg(struct irq_data *irq_data, struct msi_msg *msg) in hyperv_root_ir_compose_msi_msg() argument 198 struct hyperv_root_ir_data *data = irq_data->chip_data; in hyperv_root_ir_compose_msi_msg() 201 cfg = irqd_cfg(irq_data); in hyperv_root_ir_compose_msi_msg() [all …]
|
| /Linux-v6.1/arch/x86/platform/uv/ |
| D | uv_irq.c | 48 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() 112 struct irq_data *irq_data = irq_domain_get_irq_data(domain, virq); in uv_domain_free() local 115 kfree(irq_data->chip_data); in uv_domain_free() 126 struct irq_data *irq_data, bool reserve) in uv_domain_activate() argument 128 uv_program_mmr(irqd_cfg(irq_data), irq_data->chip_data); in uv_domain_activate() 137 struct irq_data *irq_data) in uv_domain_deactivate() argument [all …]
|
| /Linux-v6.1/Documentation/translations/zh_CN/core-api/ |
| D | genericirq.rst | 107 这个高层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-v6.1/arch/sparc/kernel/ |
| D | prom_irqtrans.c | 117 struct sabre_irq_data *irq_data = _arg2; in sabre_wsync_handler() local 118 unsigned long controller_regs = irq_data->controller_regs; in sabre_wsync_handler() 225 struct sabre_irq_data *irq_data = _data; in sabre_irq_build() local 226 unsigned long controller_regs = irq_data->controller_regs; in sabre_irq_build() 263 (void *) irq_data); in sabre_irq_build() 272 struct sabre_irq_data *irq_data; in sabre_irq_trans_init() local 278 irq_data = prom_early_alloc(sizeof(struct sabre_irq_data)); in sabre_irq_trans_init() 281 irq_data->controller_regs = regs[0].phys_addr; in sabre_irq_trans_init() 284 irq_data->pci_first_busno = busrange[0]; in sabre_irq_trans_init() 286 dp->irq_trans->data = irq_data; in sabre_irq_trans_init() [all …]
|
| /Linux-v6.1/drivers/mfd/ |
| D | rc5t583-irq.c | 140 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 …]
|
| D | max8925-core.c | 481 struct max8925_irq_data *irq_data; in max8925_irq() local 487 irq_data = &max8925_irqs[i]; in max8925_irq() 489 if (irq_data->tsc_irq) in max8925_irq() 491 if (irq_data->flags == FLAGS_RTC) in max8925_irq() 493 else if (irq_data->flags == FLAGS_ADC) in max8925_irq() 497 if (read_reg != irq_data->reg) { in max8925_irq() 498 read_reg = irq_data->reg; in max8925_irq() 499 value = max8925_reg_read(i2c, irq_data->reg); in max8925_irq() 501 if (value & irq_data->enable) in max8925_irq() 510 struct max8925_irq_data *irq_data; in max8925_tsc_irq() local [all …]
|
| D | mt6358-irq.c | 76 static void pmic_irq_enable(struct irq_data *data) in pmic_irq_enable() 80 struct pmic_irq_data *irqd = chip->irq_data; in pmic_irq_enable() 85 static void pmic_irq_disable(struct irq_data *data) in pmic_irq_disable() 89 struct pmic_irq_data *irqd = chip->irq_data; in pmic_irq_disable() 94 static void pmic_irq_lock(struct irq_data *data) in pmic_irq_lock() 101 static void pmic_irq_sync_unlock(struct irq_data *data) in pmic_irq_sync_unlock() 105 struct pmic_irq_data *irqd = chip->irq_data; in pmic_irq_sync_unlock() 147 struct pmic_irq_data *irqd = chip->irq_data; in mt6358_irq_sp_handler() 184 struct pmic_irq_data *irqd = chip->irq_data; in mt6358_irq_handler() 235 chip->irq_data = &mt6357_irqd; in mt6358_irq_init() [all …]
|
| D | max8998-irq.c | 95 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-v6.1/arch/arm/mach-s3c/ |
| D | bast-irq.c | 53 bast_pc104_mask(struct irq_data *data) in bast_pc104_mask() 63 bast_pc104_maskack(struct irq_data *data) in bast_pc104_maskack() 68 desc->irq_data.chip->irq_ack(&desc->irq_data); in bast_pc104_maskack() 72 bast_pc104_unmask(struct irq_data *data) in bast_pc104_unmask() 97 desc->irq_data.chip->irq_ack(&desc->irq_data); in bast_irq_pc104_demux()
|
| D | irq-s3c24xx.c | 80 static void s3c_irq_mask(struct irq_data *data) in s3c_irq_mask() 82 struct s3c_irq_data *irq_data = irq_data_get_irq_chip_data(data); in s3c_irq_mask() local 83 struct s3c_irq_intc *intc = irq_data->intc; in s3c_irq_mask() 90 mask |= (1UL << irq_data->offset); in s3c_irq_mask() 94 parent_data = &parent_intc->irqs[irq_data->parent_irq]; in s3c_irq_mask() 102 irq_data->parent_irq); in s3c_irq_mask() 108 static void s3c_irq_unmask(struct irq_data *data) in s3c_irq_unmask() 110 struct s3c_irq_data *irq_data = irq_data_get_irq_chip_data(data); in s3c_irq_unmask() local 111 struct s3c_irq_intc *intc = irq_data->intc; in s3c_irq_unmask() 117 mask &= ~(1UL << irq_data->offset); in s3c_irq_unmask() [all …]
|
| /Linux-v6.1/drivers/irqchip/ |
| D | irq-partition-percpu.c | 31 static void partition_irq_mask(struct irq_data *d) in partition_irq_mask() 35 struct irq_data *data = irq_desc_get_irq_data(part->chained_desc); in partition_irq_mask() 42 static void partition_irq_unmask(struct irq_data *d) in partition_irq_unmask() 46 struct irq_data *data = irq_desc_get_irq_data(part->chained_desc); in partition_irq_unmask() 53 static int partition_irq_set_irqchip_state(struct irq_data *d, in partition_irq_set_irqchip_state() 59 struct irq_data *data = irq_desc_get_irq_data(part->chained_desc); in partition_irq_set_irqchip_state() 68 static int partition_irq_get_irqchip_state(struct irq_data *d, in partition_irq_get_irqchip_state() 74 struct irq_data *data = irq_desc_get_irq_data(part->chained_desc); in partition_irq_get_irqchip_state() 83 static int partition_irq_set_type(struct irq_data *d, unsigned int type) in partition_irq_set_type() 87 struct irq_data *data = irq_desc_get_irq_data(part->chained_desc); in partition_irq_set_type() [all …]
|
| D | irq-xtensa-pic.c | 44 static void xtensa_irq_mask(struct irq_data *d) in xtensa_irq_mask() 50 static void xtensa_irq_unmask(struct irq_data *d) in xtensa_irq_unmask() 56 static void xtensa_irq_enable(struct irq_data *d) in xtensa_irq_enable() 61 static void xtensa_irq_disable(struct irq_data *d) in xtensa_irq_disable() 66 static void xtensa_irq_ack(struct irq_data *d) in xtensa_irq_ack() 71 static int xtensa_irq_retrigger(struct irq_data *d) in xtensa_irq_retrigger()
|
| /Linux-v6.1/drivers/staging/board/ |
| D | board.c | 76 struct of_phandle_args irq_data; in gic_fixup_resource() local 83 irq_data.np = irqc_node; in gic_fixup_resource() 84 irq_data.args_count = 3; in gic_fixup_resource() 85 irq_data.args[0] = 0; in gic_fixup_resource() 86 irq_data.args[1] = hwirq - irqc_base; in gic_fixup_resource() 91 irq_data.args[2] = IRQ_TYPE_EDGE_FALLING; in gic_fixup_resource() 94 irq_data.args[2] = IRQ_TYPE_EDGE_RISING; in gic_fixup_resource() 97 irq_data.args[2] = IRQ_TYPE_LEVEL_LOW; in gic_fixup_resource() 101 irq_data.args[2] = IRQ_TYPE_LEVEL_HIGH; in gic_fixup_resource() 105 virq = irq_create_of_mapping(&irq_data); in gic_fixup_resource()
|
| /Linux-v6.1/drivers/regulator/ |
| D | tps65219-regulator.c | 291 struct tps65219_regulator_irq_data *irq_data = data; in tps65219_regulator_irq_handler() local 293 if (irq_data->type->event_name[0] == '\0') { in tps65219_regulator_irq_handler() 295 dev_err(irq_data->dev, in tps65219_regulator_irq_handler() 300 regulator_notifier_call_chain(irq_data->rdev, in tps65219_regulator_irq_handler() 301 irq_data->type->event, NULL); in tps65219_regulator_irq_handler() 303 dev_err(irq_data->dev, "Error IRQ trap %s for %s\n", in tps65219_regulator_irq_handler() 304 irq_data->type->event_name, irq_data->type->regulator_name); in tps65219_regulator_irq_handler() 331 struct tps65219_regulator_irq_data *irq_data; in tps65219_regulator_probe() local 352 irq_data = devm_kmalloc(tps->dev, in tps65219_regulator_probe() 356 if (!irq_data) in tps65219_regulator_probe() [all …]
|
| /Linux-v6.1/include/linux/irqchip/ |
| D | chained_irq.h | 24 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-v6.1/arch/m68k/atari/ |
| D | ataints.c | 86 static unsigned int atari_irq_startup(struct irq_data *data) in atari_irq_startup() 96 static void atari_irq_shutdown(struct irq_data *data) in atari_irq_shutdown() 108 static void atari_irq_enable(struct irq_data *data) in atari_irq_enable() 113 static void atari_irq_disable(struct irq_data *data) in atari_irq_disable() 161 static void atari_mfptimer_enable(struct irq_data *data) in atari_mfptimer_enable() 168 static void atari_mfptimer_disable(struct irq_data *data) in atari_mfptimer_disable() 194 static unsigned int atari_ethernat_startup(struct irq_data *data) in atari_ethernat_startup() 216 static void atari_ethernat_enable(struct irq_data *data) in atari_ethernat_enable() 227 static void atari_ethernat_disable(struct irq_data *data) in atari_ethernat_disable() 238 static void atari_ethernat_shutdown(struct irq_data *data) in atari_ethernat_shutdown()
|
| /Linux-v6.1/arch/x86/kernel/apic/ |
| D | io_apic.c | 444 static void mask_ioapic_irq(struct irq_data *irq_data) in mask_ioapic_irq() argument 446 struct mp_chip_data *data = irq_data->chip_data; in mask_ioapic_irq() 459 static void unmask_ioapic_irq(struct irq_data *irq_data) in unmask_ioapic_irq() argument 461 struct mp_chip_data *data = irq_data->chip_data; in unmask_ioapic_irq() 993 struct irq_data *irq_data = irq_get_irq_data(irq); in alloc_isa_irq_from_domain() local 1001 if (irq_data && irq_data->parent_data) { in alloc_isa_irq_from_domain() 1004 if (__add_pin_to_irq_node(irq_data->chip_data, node, ioapic, in alloc_isa_irq_from_domain() 1012 irq_data = irq_domain_get_irq_data(domain, irq); in alloc_isa_irq_from_domain() 1013 data = irq_data->chip_data; in alloc_isa_irq_from_domain() 1125 struct irq_data *irq_data = irq_get_irq_data(irq); in mp_unmap_irq() local [all …]
|
| /Linux-v6.1/arch/m68k/mac/ |
| D | macints.c | 131 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()
|