Home
last modified time | relevance | path

Searched refs:irq (Results 1 – 25 of 28) sorted by relevance

12

/kernel/irq/
Dmanage.c99 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 …]
Dirqdesc.c103 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 …]
Dinternals.h99 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 …]
Ddevres.c14 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 …]
Dhandle.c33 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 …]
Dchip.c23 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 …]
Dtimings.c382 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 …]
Dresend.c33 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()
Dipi.c115 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 …]
Dproc.c115 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 …]
Dcpuhotplug.c46 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()
Dspurious.c41 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 …]
DKconfig5 # 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 …]
Dmsi.c64 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 …]
Dpm.c134 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()
Ddebugfs.c219 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()
Ddummychip.c22 print_irq_desc(data->irq, desc); in ack_bad()
23 ack_bad_irq(data->irq); in ack_bad()
Ddebug.h11 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()
Dirqdomain.c506 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/
Dwakeup_reason.c40 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/
Dtick-common.c258 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/
Dcpufreq_schedutil.c206 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/
DMakefile48 obj-y += irq/
/kernel/trace/
DKconfig103 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
Dtrace_mmiotrace.c71 dev->vendor, dev->device, dev->irq); in mmio_print_pcidev()

12