Home
last modified time | relevance | path

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

12

/kernel/irq/
Dmanage.c98 bool synchronize_hardirq(unsigned int irq) in synchronize_hardirq() argument
100 struct irq_desc *desc = irq_to_desc(irq); in synchronize_hardirq()
136 void synchronize_irq(unsigned int irq) in synchronize_irq() argument
138 struct irq_desc *desc = irq_to_desc(irq); in synchronize_irq()
161 int irq_can_set_affinity(unsigned int irq) in irq_can_set_affinity() argument
163 return __irq_can_set_affinity(irq_to_desc(irq)); in irq_can_set_affinity()
173 bool irq_can_set_affinity_usr(unsigned int irq) in irq_can_set_affinity_usr() argument
175 struct irq_desc *desc = irq_to_desc(irq); in irq_can_set_affinity_usr()
211 chip->name, data->irq); in irq_validate_effective_affinity()
401 int irq_update_affinity_desc(unsigned int irq, in irq_update_affinity_desc() argument
[all …]
Dirqdesc.c102 static void desc_set_defaults(unsigned int irq, struct irq_desc *desc, int node, in desc_set_defaults() argument
111 desc->irq_data.irq = irq; in desc_set_defaults()
159 static void irq_insert_desc(unsigned int irq, struct irq_desc *desc) in irq_insert_desc() argument
161 MA_STATE(mas, &sparse_irqs, irq, irq); in irq_insert_desc()
165 static void delete_irq_desc(unsigned int irq) in delete_irq_desc() argument
167 MA_STATE(mas, &sparse_irqs, irq, irq); in delete_irq_desc()
313 ATTRIBUTE_GROUPS(irq);
321 static void irq_sysfs_add(int irq, struct irq_desc *desc) in irq_sysfs_add() argument
329 if (kobject_add(&desc->kobj, irq_kobj_base, "%d", irq)) in irq_sysfs_add()
330 pr_warn("Failed to add kobject for irq %d\n", irq); in irq_sysfs_add()
[all …]
Dinternals.h102 static inline void irq_mark_irq(unsigned int irq) { } in irq_mark_irq() argument
104 extern void irq_mark_irq(unsigned int irq);
125 extern void register_irq_proc(unsigned int irq, struct irq_desc *desc);
126 extern void unregister_irq_proc(unsigned int irq, struct irq_desc *desc);
127 extern void register_handler_proc(unsigned int irq, struct irqaction *action);
128 extern void unregister_handler_proc(unsigned int irq, struct irqaction *action);
130 static inline void register_irq_proc(unsigned int irq, struct irq_desc *desc) { } in register_irq_proc() argument
131 static inline void unregister_irq_proc(unsigned int irq, struct irq_desc *desc) { } in unregister_irq_proc() argument
132 static inline void register_handler_proc(unsigned int irq, in register_handler_proc() argument
134 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.c35 unsigned int irq = irq_desc_get_irq(desc); in handle_bad_irq() local
37 print_irq_desc(irq, desc); in handle_bad_irq()
39 ack_bad_irq(irq); in handle_bad_irq()
52 static void warn_no_thread(unsigned int irq, struct irqaction *action) in warn_no_thread() argument
58 "but no thread function available.", irq, action->name); in warn_no_thread()
142 unsigned int irq = desc->irq_data.irq; in __handle_irq_event_percpu() local
157 trace_irq_handler_entry(irq, action); in __handle_irq_event_percpu()
158 res = action->handler(irq, action->dev_id); in __handle_irq_event_percpu()
159 trace_irq_handler_exit(irq, action, res); in __handle_irq_event_percpu()
162 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, const 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()
56 irq_mark_irq(irq); in irq_set_chip()
66 int irq_set_irq_type(unsigned int irq, unsigned int type) in irq_set_irq_type() argument
69 struct irq_desc *desc = irq_get_desc_buslock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL); in irq_set_irq_type()
88 int irq_set_handler_data(unsigned int irq, void *data) in irq_set_handler_data() argument
91 struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); in irq_set_handler_data()
119 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 …]
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) in irq_destroy_ipi()
143 irq = irq + cpumask_first(dest) - data->common->ipi_offset; in irq_destroy_ipi()
149 irq_domain_free_irqs(irq, nr_irqs); in irq_destroy_ipi()
163 irq_hw_number_t ipi_get_hwirq(unsigned int irq, unsigned int cpu) in ipi_get_hwirq() argument
165 struct irq_data *data = irq_get_irq_data(irq); in ipi_get_hwirq()
182 data = irq_get_irq_data(irq + cpu - data->common->ipi_offset); in ipi_get_hwirq()
250 unsigned irq = data->irq + cpu - data->common->ipi_offset; in __ipi_send_single() local
252 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()
141 d->irq, cpumask_pr_args(affinity)); in migrate_one_irq()
151 d->irq, err); in migrate_one_irq()
174 unsigned int irq; in irq_migrate_all_off_this_cpu() local
176 for_each_active_irq(irq) { in irq_migrate_all_off_this_cpu()
179 desc = irq_to_desc(irq); in irq_migrate_all_off_this_cpu()
186 irq, smp_processor_id()); in irq_migrate_all_off_this_cpu()
242 unsigned int irq; in irq_affinity_online_cpu() local
245 for_each_active_irq(irq) { in irq_affinity_online_cpu()
[all …]
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
34 # Support for generic irq migrating off cpu before the cpu is offline.
38 # Alpha specific irq affinity mechanism
59 # Generic irq_domain hw <--> linux irq number translation
69 # Support for hierarchical irq domains
74 # Support for obsolete non-mapping irq domains
111 # Support forced irq threading
116 bool "Support sparse irq numbering" if MAY_HAVE_SPARSE_IRQ
119 Sparse irq numbering is useful for distro kernels that want
[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()
186 int irq; in resume_irqs() local
188 for_each_irq_desc(irq, desc) { in resume_irqs()
208 void rearm_wake_irq(unsigned int irq) in rearm_wake_irq() argument
211 struct irq_desc *desc = irq_get_desc_buslock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL); in rearm_wake_irq()
Ddebugfs.c224 void irq_debugfs_copy_devname(int irq, struct device *dev) in irq_debugfs_copy_devname() argument
226 struct irq_desc *desc = irq_to_desc(irq); in irq_debugfs_copy_devname()
233 void irq_add_debugfs_entry(unsigned int irq, struct irq_desc *desc) in irq_add_debugfs_entry() argument
240 sprintf(name, "%d", irq); in irq_add_debugfs_entry()
248 int irq; in irq_debugfs_init() local
257 for_each_active_irq(irq) in irq_debugfs_init()
258 irq_add_debugfs_entry(irq, irq_to_desc(irq)); in irq_debugfs_init()
Dresend.c173 int irq_inject_interrupt(unsigned int irq) in irq_inject_interrupt() argument
180 if (!irq_set_irqchip_state(irq, IRQCHIP_STATE_PENDING, true)) in irq_inject_interrupt()
184 desc = irq_get_desc_buslock(irq, &flags, 0); in irq_inject_interrupt()
Dmsi.c155 return !desc->irq; in msi_desc_match()
157 return !!desc->irq; in msi_desc_match()
261 void get_cached_msi_msg(unsigned int irq, struct msi_msg *msg) in get_cached_msi_msg() argument
263 struct msi_desc *entry = irq_get_msi_desc(irq); in get_cached_msi_msg()
451 if (desc && desc->irq) { in msi_domain_get_virq()
459 ret = desc->irq + index; in msi_domain_get_virq()
461 ret = desc->irq; in msi_domain_get_virq()
523 attrs[i].attr.name = kasprintf(GFP_KERNEL, "%d", desc->irq + i); in msi_sysfs_populate_desc()
1099 desc->irq = virq; in msi_domain_populate_irqs()
1138 desc->irq = 0; in msi_domain_depopulate_descs()
[all …]
Dirqdomain.c538 static void irq_domain_disassociate(struct irq_domain *domain, unsigned int irq) in irq_domain_disassociate() argument
540 struct irq_data *irq_data = irq_get_irq_data(irq); in irq_domain_disassociate()
544 "virq%i doesn't exist; cannot disassociate\n", irq)) in irq_domain_disassociate()
551 irq_set_status_flags(irq, IRQ_NOREQUEST); in irq_domain_disassociate()
554 irq_set_chip_and_handler(irq, NULL, NULL); in irq_domain_disassociate()
557 synchronize_irq(irq); in irq_domain_disassociate()
561 domain->ops->unmap(domain, irq); in irq_domain_disassociate()
932 unsigned int *irq) in __irq_resolve_mapping() argument
948 if (irq && desc) in __irq_resolve_mapping()
949 *irq = hwirq; in __irq_resolve_mapping()
[all …]
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()
/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/trace/
Dtrace_osnoise.c212 struct osn_irq irq; member
722 if (osn_var->irq.delta_start) in cond_move_irq_delta_start()
723 osn_var->irq.delta_start += duration; in cond_move_irq_delta_start()
927 osn_var->irq.arrival_time = time_get(); in osnoise_trace_irq_entry()
928 set_int_safe_time(osn_var, &osn_var->irq.delta_start); in osnoise_trace_irq_entry()
929 osn_var->irq.count++; in osnoise_trace_irq_entry()
948 duration = get_int_safe_duration(osn_var, &osn_var->irq.delta_start); in osnoise_trace_irq_exit()
949 trace_irq_noise(id, desc, osn_var->irq.arrival_time, duration); in osnoise_trace_irq_exit()
950 osn_var->irq.arrival_time = 0; in osnoise_trace_irq_exit()
960 static void trace_irqentry_callback(void *data, int irq, in trace_irqentry_callback() argument
[all …]
DKconfig147 Create preempt/irq toggle tracepoints if needed, so that other parts
494 ACTIVATION ID field serves to relate the irq execution to its
561 or irq latency tracers are enabled, as those need to swap as well
1110 tracers by executing a preempt or irq disable section with a user
1115 irq-disabled critical sections for 500us:
1116 modprobe preemptirq_delay_test test_mode=irq delay=500 burst_size=3
/kernel/time/
Dtick-common.c246 irq_set_affinity(newdev->irq, cpumask); in tick_setup_device()
283 if (newdev->irq >= 0 && !irq_can_set_affinity(newdev->irq)) in tick_check_percpu()
/kernel/sched/
Dpsi.c1018 u64 now, irq, *psi_time; in psi_account_irqtime() local
1030 irq = irq_time_read(cpu); in psi_account_irqtime()
1032 delta = (s64)(irq - *psi_time); in psi_account_irqtime()
1035 *psi_time = irq; in psi_account_irqtime()
/kernel/
DMakefile53 obj-y += irq/

12