/kernel/irq/ |
D | manage.c | 99 bool synchronize_hardirq(unsigned int irq) in synchronize_hardirq() argument 101 struct irq_desc *desc = irq_to_desc(irq); in synchronize_hardirq() 127 void synchronize_irq(unsigned int irq) in synchronize_irq() argument 129 struct irq_desc *desc = irq_to_desc(irq); in synchronize_irq() 160 int irq_can_set_affinity(unsigned int irq) in irq_can_set_affinity() argument 162 return __irq_can_set_affinity(irq_to_desc(irq)); in irq_can_set_affinity() 172 bool irq_can_set_affinity_usr(unsigned int irq) in irq_can_set_affinity_usr() argument 174 struct irq_desc *desc = irq_to_desc(irq); in irq_can_set_affinity_usr() 207 chip->name, data->irq); in irq_validate_effective_affinity() 390 int __irq_set_affinity(unsigned int irq, const struct cpumask *mask, bool force) in __irq_set_affinity() argument [all …]
|
D | irqdesc.c | 103 static void desc_set_defaults(unsigned int irq, struct irq_desc *desc, int node, in desc_set_defaults() argument 112 desc->irq_data.irq = irq; in desc_set_defaults() 150 int cpu, irq = desc->irq_data.irq; in per_cpu_count_show() local 155 unsigned int c = kstat_irqs_cpu(irq, cpu); in per_cpu_count_show() 278 ATTRIBUTE_GROUPS(irq); 286 static void irq_sysfs_add(int irq, struct irq_desc *desc) in irq_sysfs_add() argument 294 if (kobject_add(&desc->kobj, irq_kobj_base, "%d", irq)) in irq_sysfs_add() 295 pr_warn("Failed to add kobject for irq %d\n", irq); in irq_sysfs_add() 316 int irq; in irq_sysfs_init() local 328 for_each_irq_desc(irq, desc) in irq_sysfs_init() [all …]
|
D | internals.h | 99 static inline void irq_mark_irq(unsigned int irq) { } in irq_mark_irq() argument 101 extern void irq_mark_irq(unsigned int irq); 120 extern void register_irq_proc(unsigned int irq, struct irq_desc *desc); 121 extern void unregister_irq_proc(unsigned int irq, struct irq_desc *desc); 122 extern void register_handler_proc(unsigned int irq, struct irqaction *action); 123 extern void unregister_handler_proc(unsigned int irq, struct irqaction *action); 125 static inline void register_irq_proc(unsigned int irq, struct irq_desc *desc) { } in register_irq_proc() argument 126 static inline void unregister_irq_proc(unsigned int irq, struct irq_desc *desc) { } in unregister_irq_proc() argument 127 static inline void register_handler_proc(unsigned int irq, in register_handler_proc() argument 129 static inline void unregister_handler_proc(unsigned int irq, in unregister_handler_proc() argument [all …]
|
D | devres.c | 14 unsigned int irq; member 22 free_irq(this->irq, this->dev_id); in devm_irq_release() 29 return this->irq == match->irq && this->dev_id == match->dev_id; in devm_irq_match() 51 int devm_request_threaded_irq(struct device *dev, unsigned int irq, in devm_request_threaded_irq() argument 67 rc = request_threaded_irq(irq, handler, thread_fn, irqflags, devname, in devm_request_threaded_irq() 74 dr->irq = irq; in devm_request_threaded_irq() 99 int devm_request_any_context_irq(struct device *dev, unsigned int irq, in devm_request_any_context_irq() argument 114 rc = request_any_context_irq(irq, handler, irqflags, devname, dev_id); in devm_request_any_context_irq() 120 dr->irq = irq; in devm_request_any_context_irq() 139 void devm_free_irq(struct device *dev, unsigned int irq, void *dev_id) in devm_free_irq() argument [all …]
|
D | handle.c | 33 unsigned int irq = irq_desc_get_irq(desc); in handle_bad_irq() local 35 print_irq_desc(irq, desc); in handle_bad_irq() 37 ack_bad_irq(irq); in handle_bad_irq() 50 static void warn_no_thread(unsigned int irq, struct irqaction *action) in warn_no_thread() argument 56 "but no thread function available.", irq, action->name); in warn_no_thread() 140 unsigned int irq = desc->irq_data.irq; in __handle_irq_event_percpu() local 155 trace_irq_handler_entry(irq, action); in __handle_irq_event_percpu() 156 res = action->handler(irq, action->dev_id); in __handle_irq_event_percpu() 157 trace_irq_handler_exit(irq, action, res); in __handle_irq_event_percpu() 160 irq, action->handler)) in __handle_irq_event_percpu() [all …]
|
D | chip.c | 23 static irqreturn_t bad_chained_irq(int irq, void *dev_id) in bad_chained_irq() argument 25 WARN_ONCE(1, "Chained irq %d should not call an action\n", irq); in bad_chained_irq() 42 int irq_set_chip(unsigned int irq, struct irq_chip *chip) in irq_set_chip() argument 45 struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); in irq_set_chip() 59 irq_mark_irq(irq); in irq_set_chip() 69 int irq_set_irq_type(unsigned int irq, unsigned int type) in irq_set_irq_type() argument 72 struct irq_desc *desc = irq_get_desc_buslock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL); in irq_set_irq_type() 91 int irq_set_handler_data(unsigned int irq, void *data) in irq_set_handler_data() argument 94 struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); in irq_set_handler_data() 122 entry->irq = irq_base; in irq_set_msi_desc_off() [all …]
|
D | timings.c | 382 static u64 __irq_timings_next_event(struct irqt_stat *irqs, int irq, u64 now) in __irq_timings_next_event() argument 446 static __always_inline void __irq_timings_store(int irq, struct irqt_stat *irqs, in __irq_timings_store() argument 473 static inline void irq_timings_store(int irq, struct irqt_stat *irqs, u64 ts) in irq_timings_store() argument 507 __irq_timings_store(irq, irqs, interval); in irq_timings_store() 542 int i, irq = 0; in irq_timings_next_event() local 569 irq = irq_timing_decode(irqts->values[i], &ts); in irq_timings_next_event() 570 s = idr_find(&irqt_stats, irq); in irq_timings_next_event() 572 irq_timings_store(irq, this_cpu_ptr(s), ts); in irq_timings_next_event() 594 void irq_timings_free(int irq) in irq_timings_free() argument 598 s = idr_find(&irqt_stats, irq); in irq_timings_free() [all …]
|
D | resend.c | 33 int irq; in resend_irqs() local 36 irq = find_first_bit(irqs_resend, nr_irqs); in resend_irqs() 37 clear_bit(irq, irqs_resend); in resend_irqs() 38 desc = irq_to_desc(irq); in resend_irqs() 52 unsigned int irq = irq_desc_get_irq(desc); in irq_sw_resend() local 73 irq = desc->parent_irq; in irq_sw_resend() 77 set_bit(irq, irqs_resend); in irq_sw_resend() 155 int irq_inject_interrupt(unsigned int irq) in irq_inject_interrupt() argument 162 if (!irq_set_irqchip_state(irq, IRQCHIP_STATE_PENDING, true)) in irq_inject_interrupt() 166 desc = irq_get_desc_buslock(irq, &flags, 0); in irq_inject_interrupt()
|
D | ipi.c | 115 int irq_destroy_ipi(unsigned int irq, const struct cpumask *dest) in irq_destroy_ipi() argument 117 struct irq_data *data = irq_get_irq_data(irq); in irq_destroy_ipi() 122 if (!irq || !data || !ipimask) in irq_destroy_ipi() 142 irq = irq + cpumask_first(dest) - data->common->ipi_offset; in irq_destroy_ipi() 148 irq_domain_free_irqs(irq, nr_irqs); in irq_destroy_ipi() 162 irq_hw_number_t ipi_get_hwirq(unsigned int irq, unsigned int cpu) in ipi_get_hwirq() argument 164 struct irq_data *data = irq_get_irq_data(irq); in ipi_get_hwirq() 180 data = irq_get_irq_data(irq + cpu - data->common->ipi_offset); in ipi_get_hwirq() 244 unsigned irq = data->irq + cpu - data->common->ipi_offset; in __ipi_send_single() local 246 data = irq_get_irq_data(irq); in __ipi_send_single() [all …]
|
D | proc.c | 115 static inline int irq_select_affinity_usr(unsigned int irq) in irq_select_affinity_usr() argument 131 static inline int irq_select_affinity_usr(unsigned int irq) in irq_select_affinity_usr() argument 133 return irq_select_affinity(irq); in irq_select_affinity_usr() 140 unsigned int irq = (int)(long)PDE_DATA(file_inode(file)); in write_irq_affinity() local 144 if (!irq_can_set_affinity_usr(irq) || no_irq_affinity) in write_irq_affinity() 167 err = irq_select_affinity_usr(irq) ? -EINVAL : count; in write_irq_affinity() 169 err = irq_set_affinity(irq, new_value); in write_irq_affinity() 300 static int name_unique(unsigned int irq, struct irqaction *new_action) in name_unique() argument 302 struct irq_desc *desc = irq_to_desc(irq); in name_unique() 319 void register_handler_proc(unsigned int irq, struct irqaction *action) in register_handler_proc() argument [all …]
|
D | cpuhotplug.c | 46 cpumask_pr_args(m), d->irq, cpu); in irq_needs_fixup() 68 pr_debug("IRQ %u: Unable to migrate away\n", d->irq); in migrate_one_irq() 135 d->irq, err); in migrate_one_irq() 158 unsigned int irq; in irq_migrate_all_off_this_cpu() local 160 for_each_active_irq(irq) { in irq_migrate_all_off_this_cpu() 163 desc = irq_to_desc(irq); in irq_migrate_all_off_this_cpu() 170 irq, smp_processor_id()); in irq_migrate_all_off_this_cpu() 221 unsigned int irq; in irq_affinity_online_cpu() local 224 for_each_active_irq(irq) { in irq_affinity_online_cpu() 225 desc = irq_to_desc(irq); in irq_affinity_online_cpu()
|
D | spurious.c | 41 smp_processor_id(), desc->irq_data.irq)) in irq_wait_for_poll() 118 static int misrouted_irq(int irq) in misrouted_irq() argument 132 if (i == irq) /* Already tried */ in misrouted_irq() 194 unsigned int irq = irq_desc_get_irq(desc); in __report_bad_irq() local 200 irq, action_ret); in __report_bad_irq() 203 "the \"irqpoll\" option)\n", irq); in __report_bad_irq() 236 try_misrouted_irq(unsigned int irq, struct irq_desc *desc, in try_misrouted_irq() argument 256 if (!irq) in try_misrouted_irq() 274 unsigned int irq; in note_interrupt() local 399 irq = irq_desc_get_irq(desc); in note_interrupt() [all …]
|
D | Kconfig | 5 # Make sparse irq Kconfig switch below available 13 # Enable the generic irq autoprobe mechanism 30 # and should not be used in new code. Use irq domains instead. 38 # Support for generic irq migrating off cpu before the cpu is offline. 42 # Alpha specific irq affinity mechanism 63 # Generic irq_domain hw <--> linux irq number translation 73 # Support for hierarchical irq domains 116 # Support forced irq threading 121 bool "Support sparse irq numbering" if MAY_HAVE_SPARSE_IRQ 124 Sparse irq numbering is useful for distro kernels that want [all …]
|
D | msi.c | 64 void get_cached_msi_msg(unsigned int irq, struct msi_msg *msg) in get_cached_msi_msg() argument 66 struct msi_desc *entry = irq_get_msi_desc(irq); in get_cached_msi_msg() 328 if (WARN_ON(!desc->irq || desc->nvec_used != 1)) { in msi_domain_populate_irqs() 333 if (!(desc->irq >= virq && desc->irq < (virq + nvec))) in msi_domain_populate_irqs() 338 ret = irq_domain_alloc_irqs_hierarchy(domain, desc->irq, 1, in msi_domain_populate_irqs() 343 irq_set_msi_desc_off(desc->irq, 0, desc); in msi_domain_populate_irqs() 349 if (!(desc->irq >= virq && desc->irq < (virq + nvec))) in msi_domain_populate_irqs() 352 irq_domain_free_irqs_common(domain, desc->irq, 1); in msi_domain_populate_irqs() 448 if (desc->irq == i) { in __msi_domain_alloc_irqs() 449 virq = desc->irq; in __msi_domain_alloc_irqs() [all …]
|
D | pm.c | 134 int irq; in suspend_device_irqs() local 136 for_each_irq_desc(irq, desc) { in suspend_device_irqs() 147 synchronize_irq(irq); in suspend_device_irqs() 187 int irq; in resume_irqs() local 189 for_each_irq_desc(irq, desc) { in resume_irqs() 209 void rearm_wake_irq(unsigned int irq) in rearm_wake_irq() argument 212 struct irq_desc *desc = irq_get_desc_buslock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL); in rearm_wake_irq()
|
D | debugfs.c | 219 void irq_debugfs_copy_devname(int irq, struct device *dev) in irq_debugfs_copy_devname() argument 221 struct irq_desc *desc = irq_to_desc(irq); in irq_debugfs_copy_devname() 228 void irq_add_debugfs_entry(unsigned int irq, struct irq_desc *desc) in irq_add_debugfs_entry() argument 235 sprintf(name, "%d", irq); in irq_add_debugfs_entry() 243 int irq; in irq_debugfs_init() local 252 for_each_active_irq(irq) in irq_debugfs_init() 253 irq_add_debugfs_entry(irq, irq_to_desc(irq)); in irq_debugfs_init()
|
D | dummychip.c | 22 print_irq_desc(data->irq, desc); in ack_bad() 23 ack_bad_irq(data->irq); in ack_bad()
|
D | debug.h | 11 static inline void print_irq_desc(unsigned int irq, struct irq_desc *desc) in print_irq_desc() argument 19 irq, desc, desc->depth, desc->irq_count, desc->irqs_unhandled); in print_irq_desc()
|
D | irqdomain.c | 506 domain->linear_revmap[hwirq] = irq_data->irq; in irq_domain_set_mapping() 514 void irq_domain_disassociate(struct irq_domain *domain, unsigned int irq) in irq_domain_disassociate() argument 516 struct irq_data *irq_data = irq_get_irq_data(irq); in irq_domain_disassociate() 520 "virq%i doesn't exist; cannot disassociate\n", irq)) in irq_domain_disassociate() 527 irq_set_status_flags(irq, IRQ_NOREQUEST); in irq_domain_disassociate() 530 irq_set_chip_and_handler(irq, NULL, NULL); in irq_domain_disassociate() 533 synchronize_irq(irq); in irq_domain_disassociate() 537 domain->ops->unmap(domain, irq); in irq_domain_disassociate() 965 return data ? data->irq : 0; in irq_find_mapping() 1196 irq_data->irq = child->irq; in irq_domain_insert_irq_data()
|
/kernel/power/ |
D | wakeup_reason.c | 40 int irq; member 71 static void init_node(struct wakeup_irq_node *p, int irq) in init_node() argument 77 p->irq = irq; in init_node() 78 desc = irq_to_desc(irq); in init_node() 85 static struct wakeup_irq_node *create_node(int irq) in create_node() argument 91 pr_warn("Failed to log wakeup IRQ %d\n", irq); in create_node() 93 init_node(result, irq); in create_node() 109 static bool add_sibling_node_sorted(struct list_head *head, int irq) in add_sibling_node_sorted() argument 119 if (n->irq < irq) in add_sibling_node_sorted() 121 else if (n->irq == irq) in add_sibling_node_sorted() [all …]
|
/kernel/time/ |
D | tick-common.c | 258 irq_set_affinity(newdev->irq, cpumask); in tick_setup_device() 295 if (newdev->irq >= 0 && !irq_can_set_affinity(newdev->irq)) in tick_check_percpu()
|
/kernel/sched/ |
D | cpufreq_schedutil.c | 206 unsigned long dl_util, util, irq; in schedutil_cpu_util() local 219 irq = cpu_util_irq(rq); in schedutil_cpu_util() 220 if (unlikely(irq >= max)) in schedutil_cpu_util() 269 util = scale_irq_capacity(util, irq, max); in schedutil_cpu_util() 270 util += irq; in schedutil_cpu_util()
|
/kernel/ |
D | Makefile | 48 obj-y += irq/
|
/kernel/trace/ |
D | Kconfig | 103 Create preempt/irq toggle tracepoints if needed, so that other parts 423 or irq latency tracers are enabled, as those need to swap as well 857 tracers by executing a preempt or irq disable section with a user 862 irq-disabled critical sections for 500us: 863 modprobe preemptirq_delay_test test_mode=irq delay=500 burst_size=3
|
D | trace_mmiotrace.c | 71 dev->vendor, dev->device, dev->irq); in mmio_print_pcidev()
|