/kernel/irq/ |
D | manage.c | 98 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 …]
|
D | irqdesc.c | 102 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 …]
|
D | internals.h | 102 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 …]
|
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 | 35 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 …]
|
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, 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 …]
|
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 | 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) 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 …]
|
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() 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 …]
|
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 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 …]
|
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() 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()
|
D | debugfs.c | 224 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()
|
D | resend.c | 173 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()
|
D | msi.c | 155 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 …]
|
D | irqdomain.c | 538 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 …]
|
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()
|
/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/trace/ |
D | trace_osnoise.c | 212 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 …]
|
D | Kconfig | 147 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/ |
D | tick-common.c | 246 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/ |
D | psi.c | 1018 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/ |
D | Makefile | 53 obj-y += irq/
|