/kernel/irq/ |
D | manage.c | 45 void synchronize_irq(unsigned int irq) in synchronize_irq() argument 47 struct irq_desc *desc = irq_to_desc(irq); in synchronize_irq() 87 int irq_can_set_affinity(unsigned int irq) in irq_can_set_affinity() argument 89 struct irq_desc *desc = irq_to_desc(irq); in irq_can_set_affinity() 196 int irq_set_affinity(unsigned int irq, const struct cpumask *mask) in irq_set_affinity() argument 198 struct irq_desc *desc = irq_to_desc(irq); in irq_set_affinity() 211 int irq_set_affinity_hint(unsigned int irq, const struct cpumask *m) in irq_set_affinity_hint() argument 214 struct irq_desc *desc = irq_get_desc_lock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL); in irq_set_affinity_hint() 228 struct irq_desc *desc = irq_to_desc(notify->irq); in irq_affinity_notify() 261 irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify) in irq_set_affinity_notifier() argument [all …]
|
D | irqdesc.c | 73 static void desc_set_defaults(unsigned int irq, struct irq_desc *desc, int node, in desc_set_defaults() argument 78 desc->irq_data.irq = irq; in desc_set_defaults() 106 static void irq_insert_desc(unsigned int irq, struct irq_desc *desc) in irq_insert_desc() argument 108 radix_tree_insert(&irq_desc_tree, irq, desc); in irq_insert_desc() 111 struct irq_desc *irq_to_desc(unsigned int irq) in irq_to_desc() argument 113 return radix_tree_lookup(&irq_desc_tree, irq); in irq_to_desc() 117 static void delete_irq_desc(unsigned int irq) in delete_irq_desc() argument 119 radix_tree_delete(&irq_desc_tree, irq); in delete_irq_desc() 134 static struct irq_desc *alloc_desc(int irq, int node, struct module *owner) in alloc_desc() argument 153 desc_set_defaults(irq, desc, node, owner); in alloc_desc() [all …]
|
D | chip.c | 28 int irq_set_chip(unsigned int irq, struct irq_chip *chip) in irq_set_chip() argument 31 struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); in irq_set_chip() 46 irq_reserve_irq(irq); in irq_set_chip() 56 int irq_set_irq_type(unsigned int irq, unsigned int type) in irq_set_irq_type() argument 59 struct irq_desc *desc = irq_get_desc_buslock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL); in irq_set_irq_type() 66 ret = __irq_set_trigger(desc, irq, type); in irq_set_irq_type() 79 int irq_set_handler_data(unsigned int irq, void *data) in irq_set_handler_data() argument 82 struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); in irq_set_handler_data() 110 entry->irq = irq_base; in irq_set_msi_desc_off() 122 int irq_set_msi_desc(unsigned int irq, struct msi_desc *entry) in irq_set_msi_desc() argument [all …]
|
D | internals.h | 63 extern int __irq_set_trigger(struct irq_desc *desc, unsigned int irq, 65 extern void __disable_irq(struct irq_desc *desc, unsigned int irq, bool susp); 66 extern void __enable_irq(struct irq_desc *desc, unsigned int irq, bool resume); 83 void check_irq_resend(struct irq_desc *desc, unsigned int irq); 87 extern void register_irq_proc(unsigned int irq, struct irq_desc *desc); 88 extern void unregister_irq_proc(unsigned int irq, struct irq_desc *desc); 89 extern void register_handler_proc(unsigned int irq, struct irqaction *action); 90 extern void unregister_handler_proc(unsigned int irq, struct irqaction *action); 92 static inline void register_irq_proc(unsigned int irq, struct irq_desc *desc) { } in register_irq_proc() argument 93 static inline void unregister_irq_proc(unsigned int irq, struct irq_desc *desc) { } in unregister_irq_proc() argument [all …]
|
D | handle.c | 30 void handle_bad_irq(unsigned int irq, struct irq_desc *desc) in handle_bad_irq() argument 32 print_irq_desc(irq, desc); in handle_bad_irq() 33 kstat_incr_irqs_this_cpu(irq, desc); in handle_bad_irq() 34 ack_bad_irq(irq); in handle_bad_irq() 45 static void warn_no_thread(unsigned int irq, struct irqaction *action) in warn_no_thread() argument 51 "but no thread function available.", irq, action->name); in warn_no_thread() 136 unsigned int flags = 0, irq = desc->irq_data.irq; in handle_irq_event_percpu() local 141 trace_irq_handler_entry(irq, action); in handle_irq_event_percpu() 142 res = action->handler(irq, action->dev_id); in handle_irq_event_percpu() 143 trace_irq_handler_exit(irq, action, res); in handle_irq_event_percpu() [all …]
|
D | pm.c | 27 int irq; in suspend_device_irqs() local 29 for_each_irq_desc(irq, desc) { in suspend_device_irqs() 33 __disable_irq(desc, irq, true); in suspend_device_irqs() 37 for_each_irq_desc(irq, desc) in suspend_device_irqs() 39 synchronize_irq(irq); in suspend_device_irqs() 46 int irq; in resume_irqs() local 48 for_each_irq_desc(irq, desc) { in resume_irqs() 57 __enable_irq(desc, irq, true); in resume_irqs() 103 int irq; in check_wakeup_irqs() local 105 for_each_irq_desc(irq, desc) { in check_wakeup_irqs() [all …]
|
D | devres.c | 10 unsigned int irq; member 18 free_irq(this->irq, this->dev_id); in devm_irq_release() 25 return this->irq == match->irq && this->dev_id == match->dev_id; in devm_irq_match() 47 int devm_request_threaded_irq(struct device *dev, unsigned int irq, in devm_request_threaded_irq() argument 60 rc = request_threaded_irq(irq, handler, thread_fn, irqflags, devname, in devm_request_threaded_irq() 67 dr->irq = irq; in devm_request_threaded_irq() 86 void devm_free_irq(struct device *dev, unsigned int irq, void *dev_id) in devm_free_irq() argument 88 struct irq_devres match_data = { irq, dev_id }; in devm_free_irq() 92 free_irq(irq, dev_id); in devm_free_irq()
|
D | spurious.c | 42 smp_processor_id(), desc->irq_data.irq)) in irq_wait_for_poll() 63 static int try_one_irq(int irq, struct irq_desc *desc, bool force) in try_one_irq() argument 114 static int misrouted_irq(int irq) in misrouted_irq() argument 128 if (i == irq) /* Already tried */ in misrouted_irq() 187 __report_bad_irq(unsigned int irq, struct irq_desc *desc, in __report_bad_irq() argument 195 irq, action_ret); in __report_bad_irq() 198 "the \"irqpoll\" option)\n", irq); in __report_bad_irq() 223 report_bad_irq(unsigned int irq, struct irq_desc *desc, irqreturn_t action_ret) in report_bad_irq() argument 229 __report_bad_irq(irq, desc, action_ret); in report_bad_irq() 234 try_misrouted_irq(unsigned int irq, struct irq_desc *desc, in try_misrouted_irq() argument [all …]
|
D | proc.c | 79 unsigned int irq = (int)(long)PDE_DATA(file_inode(file)); in write_irq_affinity() local 83 if (!irq_can_set_affinity(irq) || no_irq_affinity) in write_irq_affinity() 109 err = irq_select_affinity_usr(irq, new_value) ? -EINVAL : count; in write_irq_affinity() 111 irq_set_affinity(irq, new_value); in write_irq_affinity() 271 static int name_unique(unsigned int irq, struct irqaction *new_action) in name_unique() argument 273 struct irq_desc *desc = irq_to_desc(irq); in name_unique() 290 void register_handler_proc(unsigned int irq, struct irqaction *action) in register_handler_proc() argument 293 struct irq_desc *desc = irq_to_desc(irq); in register_handler_proc() 296 !name_unique(irq, action)) in register_handler_proc() 310 void register_irq_proc(unsigned int irq, struct irq_desc *desc) in register_irq_proc() argument [all …]
|
D | resend.c | 34 int irq; in resend_irqs() local 37 irq = find_first_bit(irqs_resend, nr_irqs); in resend_irqs() 38 clear_bit(irq, irqs_resend); in resend_irqs() 39 desc = irq_to_desc(irq); in resend_irqs() 41 desc->handle_irq(irq, desc); in resend_irqs() 56 void check_irq_resend(struct irq_desc *desc, unsigned int irq) in check_irq_resend() argument 84 irq = desc->parent_irq; in check_irq_resend() 86 set_bit(irq, irqs_resend); in check_irq_resend()
|
D | Kconfig | 1 # Select this to activate the generic irq options below 15 # Make sparse irq Kconfig switch below available 19 # Enable the generic irq autoprobe mechanism 35 # Alpha specific irq affinity mechanism 55 # Generic irq_domain hw <--> linux irq number translation 63 This option will show the mapping relationship between hardware irq 64 numbers and Linux irq numbers. The mapping is exposed via debugfs 69 # Support forced irq threading 74 bool "Support sparse irq numbering" if MAY_HAVE_SPARSE_IRQ 77 Sparse irq numbering is useful for distro kernels that want
|
D | generic-chip.c | 42 u32 mask = 1 << (d->irq - gc->irq_base); in irq_gc_mask_disable_reg() 60 u32 mask = 1 << (d->irq - gc->irq_base); in irq_gc_mask_set_bit() 78 u32 mask = 1 << (d->irq - gc->irq_base); in irq_gc_mask_clr_bit() 96 u32 mask = 1 << (d->irq - gc->irq_base); in irq_gc_unmask_enable_reg() 111 u32 mask = 1 << (d->irq - gc->irq_base); in irq_gc_ack_set_bit() 125 u32 mask = ~(1 << (d->irq - gc->irq_base)); in irq_gc_ack_clr_bit() 139 u32 mask = 1 << (d->irq - gc->irq_base); in irq_gc_mask_disable_reg_and_ack() 154 u32 mask = 1 << (d->irq - gc->irq_base); in irq_gc_eoi() 172 u32 mask = 1 << (d->irq - gc->irq_base); in irq_gc_set_wake()
|
D | irqdomain.c | 235 int irq = first_irq + i; in irq_domain_add_legacy() local 236 struct irq_data *irq_data = irq_get_irq_data(irq); in irq_domain_add_legacy() 254 int irq = first_irq + i; in irq_domain_add_legacy() local 258 if (!irq) in irq_domain_add_legacy() 266 ops->map(domain, irq, hwirq); in irq_domain_add_legacy() 269 irq_clear_status_flags(irq, IRQ_NOREQUEST); in irq_domain_add_legacy() 402 int irq = irq_base + count; in irq_domain_disassociate_many() local 403 struct irq_data *irq_data = irq_get_irq_data(irq); in irq_domain_disassociate_many() 410 irq_set_status_flags(irq, IRQ_NOREQUEST); in irq_domain_disassociate_many() 413 irq_set_chip_and_handler(irq, NULL, NULL); in irq_domain_disassociate_many() [all …]
|
D | dummychip.c | 21 print_irq_desc(data->irq, desc); in ack_bad() 22 ack_bad_irq(data->irq); in ack_bad()
|
D | debug.h | 12 static inline void print_irq_desc(unsigned int irq, struct irq_desc *desc) in print_irq_desc() argument 15 irq, desc, desc->depth, desc->irq_count, desc->irqs_unhandled); in print_irq_desc()
|
/kernel/power/ |
D | wakeup_reason.c | 103 void log_wakeup_reason(int irq) in log_wakeup_reason() argument 106 desc = irq_to_desc(irq); in log_wakeup_reason() 108 printk(KERN_INFO "Resume caused by IRQ %d, %s\n", irq, in log_wakeup_reason() 111 printk(KERN_INFO "Resume caused by IRQ %d\n", irq); in log_wakeup_reason() 121 irq_list[irqcount++] = irq; in log_wakeup_reason() 125 int check_wakeup_reason(int irq) in check_wakeup_reason() argument 132 if (irq_list[irq_no] == irq) { in check_wakeup_reason()
|
/kernel/time/ |
D | tick-common.c | 191 irq_set_affinity(newdev->irq, cpumask); in tick_setup_device() 234 if (!irq_can_set_affinity(newdev->irq)) in tick_check_new_device()
|
D | tick-broadcast.c | 446 irq_set_affinity(bc->irq, bc->cpumask); in tick_broadcast_set_affinity()
|
/kernel/trace/ |
D | trace_mmiotrace.c | 72 dev->vendor, dev->device, dev->irq); in mmio_print_pcidev()
|
D | Kconfig | 277 or irq latency tracers are enabled, as those need to swap as well
|
/kernel/ |
D | Makefile | 82 obj-$(CONFIG_GENERIC_HARDIRQS) += irq/
|