/linux-4.19.296/drivers/irqchip/ |
D | Makefile | 4 obj-$(CONFIG_ALPINE_MSI) += irq-alpine-msi.o 5 obj-$(CONFIG_ATH79) += irq-ath79-cpu.o 6 obj-$(CONFIG_ATH79) += irq-ath79-misc.o 7 obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2835.o 8 obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2836.o 10 obj-$(CONFIG_FARADAY_FTINTC010) += irq-ftintc010.o 11 obj-$(CONFIG_ARCH_HIP04) += irq-hip04.o 12 obj-$(CONFIG_ARCH_LPC32XX) += irq-lpc32xx.o 13 obj-$(CONFIG_ARCH_MMP) += irq-mmp.o 14 obj-$(CONFIG_IRQ_MXS) += irq-mxs.o [all …]
|
D | irq-i8259.c | 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 100 disable_irq_nosync(irq); in make_8259A_irq() 101 irq_set_chip_and_handler(irq, &i8259A_chip, handle_level_irq); in make_8259A_irq() 102 enable_irq(irq); in make_8259A_irq() [all …]
|
D | irq-ath79-cpu.c | 40 int irq; in plat_irq_dispatch() local 51 irq = fls(pending) - 1; in plat_irq_dispatch() 52 if (irq < ARRAY_SIZE(irq_wb_chan) && irq_wb_chan[irq] != -1) in plat_irq_dispatch() 53 ath79_ddr_wb_flush(irq_wb_chan[irq]); in plat_irq_dispatch() 54 do_IRQ(MIPS_CPU_IRQ_BASE + irq); in plat_irq_dispatch() 55 pending &= ~BIT(irq); in plat_irq_dispatch() 70 u32 irq = i; in ar79_cpu_intc_of_init() local 73 node, "qca,ddr-wb-channel-interrupts", i, &irq); in ar79_cpu_intc_of_init() 74 if (irq >= ARRAY_SIZE(irq_wb_chan)) in ar79_cpu_intc_of_init() 84 irq_wb_chan[irq] = args.args[0]; in ar79_cpu_intc_of_init()
|
D | irq-mmp.c | 73 hwirq = d->irq - data->virq_base; in icu_mask_ack_irq() 97 hwirq = d->irq - data->virq_base; in icu_mask_irq() 116 hwirq = d->irq - data->virq_base; in icu_unmask_irq() 137 unsigned int irq = irq_desc_get_irq(desc); in icu_mux_irq_demux() local 144 if (irq == icu_data[i].cascade_irq) { in icu_mux_irq_demux() 151 pr_err("Spurious irq %d in MMP INTC\n", irq); in icu_mux_irq_demux() 166 static int mmp_irq_domain_map(struct irq_domain *d, unsigned int irq, in mmp_irq_domain_map() argument 169 irq_set_chip_and_handler(irq, &icu_irq_chip, handle_level_irq); in mmp_irq_domain_map() 225 int irq; in icu_init_irq() local 237 for (irq = 0; irq < 64; irq++) { in icu_init_irq() [all …]
|
/linux-4.19.296/drivers/misc/ocxl/ |
D | afu_irq.c | 30 struct afu_irq *irq = (struct afu_irq *) data; in afu_irq_handler() local 33 if (irq->ev_ctx) in afu_irq_handler() 34 eventfd_signal(irq->ev_ctx, 1); in afu_irq_handler() 38 static int setup_afu_irq(struct ocxl_context *ctx, struct afu_irq *irq) in setup_afu_irq() argument 42 irq->virq = irq_create_mapping(NULL, irq->hw_irq); in setup_afu_irq() 43 if (!irq->virq) { in setup_afu_irq() 47 pr_debug("hw_irq %d mapped to virq %u\n", irq->hw_irq, irq->virq); in setup_afu_irq() 49 irq->name = kasprintf(GFP_KERNEL, "ocxl-afu-%u", irq->virq); in setup_afu_irq() 50 if (!irq->name) { in setup_afu_irq() 51 irq_dispose_mapping(irq->virq); in setup_afu_irq() [all …]
|
/linux-4.19.296/virt/kvm/arm/vgic/ |
D | vgic.c | 72 struct vgic_irq *irq = NULL; in vgic_get_lpi() local 77 list_for_each_entry(irq, &dist->lpi_list_head, lpi_list) { in vgic_get_lpi() 78 if (irq->intid != intid) in vgic_get_lpi() 85 vgic_get_irq_kref(irq); in vgic_get_lpi() 88 irq = NULL; in vgic_get_lpi() 93 return irq; in vgic_get_lpi() 133 void vgic_put_irq(struct kvm *kvm, struct vgic_irq *irq) in vgic_put_irq() argument 138 if (irq->intid < VGIC_MIN_LPI) in vgic_put_irq() 142 if (!kref_put(&irq->refcount, vgic_irq_release)) { in vgic_put_irq() 147 list_del(&irq->lpi_list); in vgic_put_irq() [all …]
|
D | vgic-mmio.c | 59 struct vgic_irq *irq = vgic_get_irq(vcpu->kvm, vcpu, intid + i); in vgic_mmio_read_group() local 61 if (irq->group) in vgic_mmio_read_group() 64 vgic_put_irq(vcpu->kvm, irq); in vgic_mmio_read_group() 78 struct vgic_irq *irq = vgic_get_irq(vcpu->kvm, vcpu, intid + i); in vgic_mmio_write_group() local 80 spin_lock_irqsave(&irq->irq_lock, flags); in vgic_mmio_write_group() 81 irq->group = !!(val & BIT(i)); in vgic_mmio_write_group() 82 vgic_queue_irq_unlock(vcpu->kvm, irq, flags); in vgic_mmio_write_group() 84 vgic_put_irq(vcpu->kvm, irq); in vgic_mmio_write_group() 101 struct vgic_irq *irq = vgic_get_irq(vcpu->kvm, vcpu, intid + i); in vgic_mmio_read_enable() local 103 if (irq->enabled) in vgic_mmio_read_enable() [all …]
|
D | vgic-v4.c | 95 static irqreturn_t vgic_v4_doorbell_handler(int irq, void *info) in vgic_v4_doorbell_handler() argument 149 int irq = dist->its_vm.vpes[i]->irq; in vgic_v4_init() local 158 irq_set_status_flags(irq, DB_IRQ_FLAGS); in vgic_v4_init() 159 ret = request_irq(irq, vgic_v4_doorbell_handler, in vgic_v4_init() 162 kvm_err("failed to allocate vcpu IRQ%d\n", irq); in vgic_v4_init() 194 int irq = its_vm->vpes[i]->irq; in vgic_v4_teardown() local 196 irq_clear_status_flags(irq, DB_IRQ_FLAGS); in vgic_v4_teardown() 197 free_irq(irq, vcpu); in vgic_v4_teardown() 216 int irq = vcpu->arch.vgic_cpu.vgic_v3.its_vpe.irq; in vgic_v4_flush_hwstate() local 228 err = irq_set_affinity(irq, cpumask_of(smp_processor_id())); in vgic_v4_flush_hwstate() [all …]
|
D | vgic-v3.c | 57 struct vgic_irq *irq; in vgic_v3_fold_lr_state() local 75 irq = vgic_get_irq(vcpu->kvm, vcpu, intid); in vgic_v3_fold_lr_state() 76 if (!irq) /* An LPI could have been unmapped. */ in vgic_v3_fold_lr_state() 79 spin_lock(&irq->irq_lock); in vgic_v3_fold_lr_state() 82 irq->active = !!(val & ICH_LR_ACTIVE_BIT); in vgic_v3_fold_lr_state() 84 if (irq->active && is_v2_sgi) in vgic_v3_fold_lr_state() 85 irq->active_source = cpuid; in vgic_v3_fold_lr_state() 88 if (irq->config == VGIC_CONFIG_EDGE && in vgic_v3_fold_lr_state() 90 irq->pending_latch = true; in vgic_v3_fold_lr_state() 93 irq->source |= (1 << cpuid); in vgic_v3_fold_lr_state() [all …]
|
D | vgic-debug.c | 172 static void print_header(struct seq_file *s, struct vgic_irq *irq, in print_header() argument 188 static void print_irq_state(struct seq_file *s, struct vgic_irq *irq, in print_irq_state() argument 192 if (irq->intid < VGIC_NR_SGIS) in print_irq_state() 194 else if (irq->intid < VGIC_NR_PRIVATE_IRQS) in print_irq_state() 196 else if (irq->intid < VGIC_MAX_SPI) in print_irq_state() 201 if (irq->intid ==0 || irq->intid == VGIC_NR_PRIVATE_IRQS) in print_irq_state() 202 print_header(s, irq, vcpu); in print_irq_state() 213 type, irq->intid, in print_irq_state() 214 (irq->target_vcpu) ? irq->target_vcpu->vcpu_id : -1, in print_irq_state() 215 irq->pending_latch, in print_irq_state() [all …]
|
D | vgic-v2.c | 73 struct vgic_irq *irq; in vgic_v2_fold_lr_state() local 85 irq = vgic_get_irq(vcpu->kvm, vcpu, intid); in vgic_v2_fold_lr_state() 87 spin_lock(&irq->irq_lock); in vgic_v2_fold_lr_state() 90 irq->active = !!(val & GICH_LR_ACTIVE_BIT); in vgic_v2_fold_lr_state() 92 if (irq->active && vgic_irq_is_sgi(intid)) in vgic_v2_fold_lr_state() 93 irq->active_source = cpuid; in vgic_v2_fold_lr_state() 96 if (irq->config == VGIC_CONFIG_EDGE && in vgic_v2_fold_lr_state() 98 irq->pending_latch = true; in vgic_v2_fold_lr_state() 101 irq->source |= (1 << cpuid); in vgic_v2_fold_lr_state() 107 if (irq->config == VGIC_CONFIG_LEVEL && !(val & GICH_LR_STATE)) in vgic_v2_fold_lr_state() [all …]
|
D | vgic.h | 113 static inline bool irq_is_pending(struct vgic_irq *irq) in irq_is_pending() argument 115 if (irq->config == VGIC_CONFIG_EDGE) in irq_is_pending() 116 return irq->pending_latch; in irq_is_pending() 118 return irq->pending_latch || irq->line_level; in irq_is_pending() 121 static inline bool vgic_irq_is_mapped_level(struct vgic_irq *irq) in vgic_irq_is_mapped_level() argument 123 return irq->config == VGIC_CONFIG_LEVEL && irq->hw; in vgic_irq_is_mapped_level() 126 static inline int vgic_irq_get_lr_count(struct vgic_irq *irq) in vgic_irq_get_lr_count() argument 129 if (vgic_irq_is_sgi(irq->intid) && irq->source) in vgic_irq_get_lr_count() 130 return hweight8(irq->source) + irq->active; in vgic_irq_get_lr_count() 132 return irq_is_pending(irq) || irq->active; in vgic_irq_get_lr_count() [all …]
|
/linux-4.19.296/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 | 118 unsigned int irq; member 139 request_threaded_irq(unsigned int irq, irq_handler_t handler, 144 request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, in request_irq() argument 147 return request_threaded_irq(irq, handler, NULL, flags, name, dev); in request_irq() 151 request_any_context_irq(unsigned int irq, irq_handler_t handler, 155 __request_percpu_irq(unsigned int irq, irq_handler_t handler, 160 request_percpu_irq(unsigned int irq, irq_handler_t handler, in request_percpu_irq() argument 163 return __request_percpu_irq(irq, handler, 0, in request_percpu_irq() 173 devm_request_threaded_irq(struct device *dev, unsigned int irq, 179 devm_request_irq(struct device *dev, unsigned int irq, irq_handler_t handler, in devm_request_irq() argument [all …]
|
D | irq.h | 174 unsigned int irq; member 570 extern int setup_irq(unsigned int irq, struct irqaction *new); 571 extern void remove_irq(unsigned int irq, struct irqaction *act); 572 extern int setup_percpu_irq(unsigned int irq, struct irqaction *new); 573 extern void remove_percpu_irq(unsigned int irq, struct irqaction *act); 579 extern int irq_set_vcpu_affinity(unsigned int irq, void *vcpu_info); 606 int irq_set_parent(int irq, int parent_irq); 608 static inline int irq_set_parent(int irq, int parent_irq) in irq_set_parent() argument 627 extern void handle_nested_irq(unsigned int irq); 659 extern int can_request_irq(unsigned int irq, unsigned long irqflags); [all …]
|
/linux-4.19.296/drivers/xen/events/ |
D | events_base.c | 106 static bool (*pirq_needs_eoi)(unsigned irq); 145 static int set_evtchn_to_irq(unsigned evtchn, unsigned irq) in set_evtchn_to_irq() argument 159 if (irq == -1) in set_evtchn_to_irq() 176 WRITE_ONCE(evtchn_to_irq[row][col], irq); in set_evtchn_to_irq() 190 struct irq_info *info_for_irq(unsigned irq) in info_for_irq() argument 192 if (irq < nr_legacy_irqs()) in info_for_irq() 193 return legacy_info_ptrs[irq]; in info_for_irq() 195 return irq_get_chip_data(irq); in info_for_irq() 198 static void set_info_for_irq(unsigned int irq, struct irq_info *info) in set_info_for_irq() argument 200 if (irq < nr_legacy_irqs()) in set_info_for_irq() [all …]
|
/linux-4.19.296/drivers/parisc/ |
D | gsc.c | 39 int irq = txn_alloc_irq(GSC_EIM_WIDTH); in gsc_alloc_irq() local 40 if (irq < 0) { in gsc_alloc_irq() 42 return irq; in gsc_alloc_irq() 45 i->txn_addr = txn_alloc_addr(irq); in gsc_alloc_irq() 46 i->txn_data = txn_alloc_data(irq); in gsc_alloc_irq() 47 i->irq = irq; in gsc_alloc_irq() 49 return irq; in gsc_alloc_irq() 52 int gsc_claim_irq(struct gsc_irq *i, int irq) in gsc_claim_irq() argument 54 int c = irq; in gsc_claim_irq() 56 irq += CPU_IRQ_BASE; /* virtualize the IRQ first */ in gsc_claim_irq() [all …]
|
D | asp.c | 36 int irq; in asp_choose_irq() local 39 case 0x71: irq = 9; break; /* SCSI */ in asp_choose_irq() 40 case 0x72: irq = 8; break; /* LAN */ in asp_choose_irq() 41 case 0x73: irq = 1; break; /* HIL */ in asp_choose_irq() 42 case 0x74: irq = 7; break; /* Centronics */ in asp_choose_irq() 43 case 0x75: irq = (dev->hw_path == 4) ? 5 : 6; break; /* RS232 */ in asp_choose_irq() 44 case 0x76: irq = 10; break; /* EISA BA */ in asp_choose_irq() 45 case 0x77: irq = 11; break; /* Graphics1 */ in asp_choose_irq() 46 case 0x7a: irq = 13; break; /* Audio (Bushmaster) */ in asp_choose_irq() 47 case 0x7b: irq = 13; break; /* Audio (Scorpio) */ in asp_choose_irq() [all …]
|
D | lasi.c | 39 int irq; in lasi_choose_irq() local 42 case 0x74: irq = 7; break; /* Centronics */ in lasi_choose_irq() 43 case 0x7B: irq = 13; break; /* Audio */ in lasi_choose_irq() 44 case 0x81: irq = 14; break; /* Lasi itself */ in lasi_choose_irq() 45 case 0x82: irq = 9; break; /* SCSI */ in lasi_choose_irq() 46 case 0x83: irq = 20; break; /* Floppy */ in lasi_choose_irq() 47 case 0x84: irq = 26; break; /* PS/2 Keyboard */ in lasi_choose_irq() 48 case 0x87: irq = 18; break; /* ISDN */ in lasi_choose_irq() 49 case 0x8A: irq = 8; break; /* LAN */ in lasi_choose_irq() 50 case 0x8C: irq = 5; break; /* RS232 */ in lasi_choose_irq() [all …]
|
/linux-4.19.296/drivers/sh/intc/ |
D | chip.c | 18 unsigned int irq = data->irq; in _intc_enable() local 19 struct intc_desc_int *d = get_intc_desc(irq); in _intc_enable() 30 [_INTC_FN(handle)], irq); in _intc_enable() 33 intc_balancing_enable(irq); in _intc_enable() 43 unsigned int irq = data->irq; in intc_disable() local 44 struct intc_desc_int *d = get_intc_desc(irq); in intc_disable() 49 intc_balancing_disable(irq); in intc_disable() 58 [_INTC_FN(handle)], irq); in intc_disable() 83 unsigned int irq = data->irq; in intc_mask_ack() local 84 struct intc_desc_int *d = get_intc_desc(irq); in intc_mask_ack() [all …]
|
D | virq.c | 23 unsigned int irq; member 35 void intc_irq_xlate_set(unsigned int irq, intc_enum id, struct intc_desc_int *d) in intc_irq_xlate_set() argument 40 intc_irq_xlate[irq].enum_id = id; in intc_irq_xlate_set() 41 intc_irq_xlate[irq].desc = d; in intc_irq_xlate_set() 45 struct intc_map_entry *intc_irq_xlate_get(unsigned int irq) in intc_irq_xlate_get() argument 47 return intc_irq_xlate + irq; in intc_irq_xlate_get() 54 int irq = -1; in intc_irq_lookup() local 75 irq = ptr - intc_irq_xlate; in intc_irq_lookup() 80 return irq; in intc_irq_lookup() 84 static int add_virq_to_pirq(unsigned int irq, unsigned int virq) in add_virq_to_pirq() argument [all …]
|
D | internals.h | 33 unsigned int irq; member 91 static inline struct intc_desc_int *get_intc_desc(unsigned int irq) in get_intc_desc() argument 93 struct irq_chip *chip = irq_get_chip(irq); in get_intc_desc() 101 static inline void activate_irq(int irq) in activate_irq() argument 103 irq_modify_status(irq, IRQ_NOREQUEST, IRQ_NOPROBE); in activate_irq() 111 return _a->irq - _b->irq; in intc_handle_int_cmp() 122 unsigned int irq); 127 unsigned int irq); 132 unsigned int irq); 144 void intc_balancing_enable(unsigned int irq); [all …]
|
/linux-4.19.296/drivers/misc/ |
D | dummy-irq.c | 22 static int irq = -1; variable 24 static irqreturn_t dummy_interrupt(int irq, void *dev_id) in dummy_interrupt() argument 30 irq); in dummy_interrupt() 39 if (irq < 0) { in dummy_irq_init() 43 if (request_irq(irq, &dummy_interrupt, IRQF_SHARED, "dummy_irq", &irq)) { in dummy_irq_init() 44 printk(KERN_ERR "dummy-irq: cannot register IRQ %d\n", irq); in dummy_irq_init() 47 printk(KERN_INFO "dummy-irq: registered for IRQ %d\n", irq); in dummy_irq_init() 54 free_irq(irq, &irq); in dummy_irq_exit() 62 module_param_hw(irq, uint, irq, 0444); 63 MODULE_PARM_DESC(irq, "The IRQ to register for");
|
/linux-4.19.296/drivers/base/power/ |
D | wakeirq.c | 32 static int dev_pm_attach_wake_irq(struct device *dev, int irq, in dev_pm_attach_wake_irq() argument 64 int dev_pm_set_wake_irq(struct device *dev, int irq) in dev_pm_set_wake_irq() argument 69 if (irq < 0) in dev_pm_set_wake_irq() 77 wirq->irq = irq; in dev_pm_set_wake_irq() 79 err = dev_pm_attach_wake_irq(dev, irq, wirq); in dev_pm_set_wake_irq() 112 free_irq(wirq->irq, wirq); in dev_pm_clear_wake_irq() 138 static irqreturn_t handle_threaded_wake_irq(int irq, void *_wirq) in handle_threaded_wake_irq() argument 144 if (irqd_is_wakeup_set(irq_get_irq_data(irq))) { in handle_threaded_wake_irq() 159 static int __dev_pm_set_dedicated_wake_irq(struct device *dev, int irq, unsigned int flag) in __dev_pm_set_dedicated_wake_irq() argument 164 if (irq < 0) in __dev_pm_set_dedicated_wake_irq() [all …]
|
/linux-4.19.296/virt/kvm/arm/ |
D | arch_timer.c | 42 .irq = 30, 47 .irq = 27, 80 static irqreturn_t kvm_arch_timer_handler(int irq, void *dev_id) in kvm_arch_timer_handler() argument 278 timer_ctx->irq.level = new_level; in kvm_timer_update_irq() 279 trace_kvm_timer_update_irq(vcpu->vcpu_id, timer_ctx->irq.irq, in kvm_timer_update_irq() 280 timer_ctx->irq.level); in kvm_timer_update_irq() 284 timer_ctx->irq.irq, in kvm_timer_update_irq() 285 timer_ctx->irq.level, in kvm_timer_update_irq() 337 if (kvm_timer_should_fire(ptimer) != ptimer->irq.level) in kvm_timer_update_state() 338 kvm_timer_update_irq(vcpu, !ptimer->irq.level, ptimer); in kvm_timer_update_state() [all …]
|