Lines Matching refs:irq
98 bool synchronize_hardirq(unsigned int irq) in synchronize_hardirq() argument
100 struct irq_desc *desc = irq_to_desc(irq); in synchronize_hardirq()
126 void synchronize_irq(unsigned int irq) in synchronize_irq() argument
128 struct irq_desc *desc = irq_to_desc(irq); in synchronize_irq()
159 int irq_can_set_affinity(unsigned int irq) in irq_can_set_affinity() argument
161 return __irq_can_set_affinity(irq_to_desc(irq)); in irq_can_set_affinity()
171 bool irq_can_set_affinity_usr(unsigned int irq) in irq_can_set_affinity_usr() argument
173 struct irq_desc *desc = irq_to_desc(irq); in irq_can_set_affinity_usr()
206 chip->name, data->irq); in irq_validate_effective_affinity()
335 int __irq_set_affinity(unsigned int irq, const struct cpumask *mask, bool force) in __irq_set_affinity() argument
337 struct irq_desc *desc = irq_to_desc(irq); in __irq_set_affinity()
350 int irq_set_affinity_hint(unsigned int irq, const struct cpumask *m) in irq_set_affinity_hint() argument
353 struct irq_desc *desc = irq_get_desc_lock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL); in irq_set_affinity_hint()
361 __irq_set_affinity(irq, m, false); in irq_set_affinity_hint()
370 struct irq_desc *desc = irq_to_desc(notify->irq); in irq_affinity_notify()
403 irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify) in irq_set_affinity_notifier() argument
405 struct irq_desc *desc = irq_to_desc(irq); in irq_set_affinity_notifier()
417 notify->irq = irq; in irq_set_affinity_notifier()
504 int irq_set_vcpu_affinity(unsigned int irq, void *vcpu_info) in irq_set_vcpu_affinity() argument
507 struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); in irq_set_vcpu_affinity()
541 static int __disable_irq_nosync(unsigned int irq) in __disable_irq_nosync() argument
544 struct irq_desc *desc = irq_get_desc_buslock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL); in __disable_irq_nosync()
564 void disable_irq_nosync(unsigned int irq) in disable_irq_nosync() argument
566 __disable_irq_nosync(irq); in disable_irq_nosync()
582 void disable_irq(unsigned int irq) in disable_irq() argument
584 if (!__disable_irq_nosync(irq)) in disable_irq()
585 synchronize_irq(irq); in disable_irq()
606 bool disable_hardirq(unsigned int irq) in disable_hardirq() argument
608 if (!__disable_irq_nosync(irq)) in disable_hardirq()
609 return synchronize_hardirq(irq); in disable_hardirq()
625 void disable_nmi_nosync(unsigned int irq) in disable_nmi_nosync() argument
627 disable_irq_nosync(irq); in disable_nmi_nosync()
669 void enable_irq(unsigned int irq) in enable_irq() argument
672 struct irq_desc *desc = irq_get_desc_buslock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL); in enable_irq()
677 KERN_ERR "enable_irq before setup/request_irq: irq %u\n", irq)) in enable_irq()
695 void enable_nmi(unsigned int irq) in enable_nmi() argument
697 enable_irq(irq); in enable_nmi()
700 static int set_irq_wake_real(unsigned int irq, unsigned int on) in set_irq_wake_real() argument
702 struct irq_desc *desc = irq_to_desc(irq); in set_irq_wake_real()
726 int irq_set_irq_wake(unsigned int irq, unsigned int on) in irq_set_irq_wake() argument
729 struct irq_desc *desc = irq_get_desc_buslock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL); in irq_set_irq_wake()
746 ret = set_irq_wake_real(irq, on); in irq_set_irq_wake()
754 WARN(1, "Unbalanced IRQ %d wake disable\n", irq); in irq_set_irq_wake()
756 ret = set_irq_wake_real(irq, on); in irq_set_irq_wake()
775 int can_request_irq(unsigned int irq, unsigned long irqflags) in can_request_irq() argument
778 struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); in can_request_irq()
849 int irq_set_parent(int irq, int parent_irq) in irq_set_parent() argument
852 struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); in irq_set_parent()
870 static irqreturn_t irq_default_primary_handler(int irq, void *dev_id) in irq_default_primary_handler() argument
879 static irqreturn_t irq_nested_primary_handler(int irq, void *dev_id) in irq_nested_primary_handler() argument
881 WARN(1, "Primary handler called for nested irq %d\n", irq); in irq_nested_primary_handler()
885 static irqreturn_t irq_forced_secondary_handler(int irq, void *dev_id) in irq_forced_secondary_handler() argument
887 WARN(1, "Secondary action handler called for irq %d\n", irq); in irq_forced_secondary_handler()
1031 ret = action->thread_fn(action->irq, action->dev_id); in irq_forced_thread_fn()
1052 ret = action->thread_fn(action->irq, action->dev_id); in irq_thread_fn()
1078 tsk->comm, tsk->pid, action->irq); in irq_thread_dtor()
1081 desc = irq_to_desc(action->irq); in irq_thread_dtor()
1137 struct irq_desc *desc = irq_to_desc(action->irq); in irq_thread()
1182 void irq_wake_thread(unsigned int irq, void *dev_id) in irq_wake_thread() argument
1184 struct irq_desc *desc = irq_to_desc(irq); in irq_wake_thread()
1232 new->secondary->irq = new->irq; in irq_setup_forced_threading()
1293 setup_irq_thread(struct irqaction *new, unsigned int irq, bool secondary) in setup_irq_thread() argument
1301 t = kthread_create(irq_thread, new, "irq/%d-%s", irq, in setup_irq_thread()
1304 t = kthread_create(irq_thread, new, "irq/%d-s-%s", irq, in setup_irq_thread()
1348 __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new) in __setup_irq() argument
1362 new->irq = irq; in __setup_irq()
1401 ret = setup_irq_thread(new, irq, false); in __setup_irq()
1405 ret = setup_irq_thread(new->secondary, irq, true); in __setup_irq()
1444 new->name, irq, desc->irq_data.chip->name); in __setup_irq()
1471 new->name, irq, desc->irq_data.chip->name); in __setup_irq()
1565 irq); in __setup_irq()
1635 irq, omsk, nmsk); in __setup_irq()
1664 register_irq_proc(irq, desc); in __setup_irq()
1666 register_handler_proc(irq, new); in __setup_irq()
1672 irq, new->flags, new->name, old->flags, old->name); in __setup_irq()
1715 int setup_irq(unsigned int irq, struct irqaction *act) in setup_irq() argument
1718 struct irq_desc *desc = irq_to_desc(irq); in setup_irq()
1727 retval = __setup_irq(irq, desc, act); in setup_irq()
1742 unsigned irq = desc->irq_data.irq; in __free_irq() local
1746 WARN(in_interrupt(), "Trying to free IRQ %d from IRQ context!\n", irq); in __free_irq()
1761 WARN(1, "Trying to free already-free IRQ %d\n", irq); in __free_irq()
1808 unregister_handler_proc(irq, action); in __free_irq()
1828 action->handler(irq, dev_id); in __free_irq()
1883 void remove_irq(unsigned int irq, struct irqaction *act) in remove_irq() argument
1885 struct irq_desc *desc = irq_to_desc(irq); in remove_irq()
1908 const void *free_irq(unsigned int irq, void *dev_id) in free_irq() argument
1910 struct irq_desc *desc = irq_to_desc(irq); in free_irq()
1934 static const void *__cleanup_nmi(unsigned int irq, struct irq_desc *desc) in __cleanup_nmi() argument
1943 unregister_handler_proc(irq, desc->action); in __cleanup_nmi()
1960 const void *free_nmi(unsigned int irq, void *dev_id) in free_nmi() argument
1962 struct irq_desc *desc = irq_to_desc(irq); in free_nmi()
1974 disable_nmi_nosync(irq); in free_nmi()
1979 devname = __cleanup_nmi(irq, desc); in free_nmi()
2028 int request_threaded_irq(unsigned int irq, irq_handler_t handler, in request_threaded_irq() argument
2036 if (irq == IRQ_NOTCONNECTED) in request_threaded_irq()
2058 desc = irq_to_desc(irq); in request_threaded_irq()
2088 retval = __setup_irq(irq, desc, action); in request_threaded_irq()
2106 disable_irq(irq); in request_threaded_irq()
2109 handler(irq, dev_id); in request_threaded_irq()
2112 enable_irq(irq); in request_threaded_irq()
2136 int request_any_context_irq(unsigned int irq, irq_handler_t handler, in request_any_context_irq() argument
2142 if (irq == IRQ_NOTCONNECTED) in request_any_context_irq()
2145 desc = irq_to_desc(irq); in request_any_context_irq()
2150 ret = request_threaded_irq(irq, NULL, handler, in request_any_context_irq()
2155 ret = request_irq(irq, handler, flags, name, dev_id); in request_any_context_irq()
2186 int request_nmi(unsigned int irq, irq_handler_t handler, in request_nmi() argument
2194 if (irq == IRQ_NOTCONNECTED) in request_nmi()
2207 desc = irq_to_desc(irq); in request_nmi()
2229 retval = __setup_irq(irq, desc, action); in request_nmi()
2239 __cleanup_nmi(irq, desc); in request_nmi()
2256 void enable_percpu_irq(unsigned int irq, unsigned int type) in enable_percpu_irq() argument
2260 struct irq_desc *desc = irq_get_desc_lock(irq, &flags, IRQ_GET_DESC_CHECK_PERCPU); in enable_percpu_irq()
2279 WARN(1, "failed to set type for IRQ%d\n", irq); in enable_percpu_irq()
2290 void enable_percpu_nmi(unsigned int irq, unsigned int type) in enable_percpu_nmi() argument
2292 enable_percpu_irq(irq, type); in enable_percpu_nmi()
2302 bool irq_percpu_is_enabled(unsigned int irq) in irq_percpu_is_enabled() argument
2309 desc = irq_get_desc_lock(irq, &flags, IRQ_GET_DESC_CHECK_PERCPU); in irq_percpu_is_enabled()
2320 void disable_percpu_irq(unsigned int irq) in disable_percpu_irq() argument
2324 struct irq_desc *desc = irq_get_desc_lock(irq, &flags, IRQ_GET_DESC_CHECK_PERCPU); in disable_percpu_irq()
2334 void disable_percpu_nmi(unsigned int irq) in disable_percpu_nmi() argument
2336 disable_percpu_irq(irq); in disable_percpu_nmi()
2342 static struct irqaction *__free_percpu_irq(unsigned int irq, void __percpu *dev_id) in __free_percpu_irq() argument
2344 struct irq_desc *desc = irq_to_desc(irq); in __free_percpu_irq()
2348 WARN(in_interrupt(), "Trying to free IRQ %d from IRQ context!\n", irq); in __free_percpu_irq()
2357 WARN(1, "Trying to free already-free IRQ %d\n", irq); in __free_percpu_irq()
2363 irq, cpumask_first(desc->percpu_enabled)); in __free_percpu_irq()
2374 unregister_handler_proc(irq, action); in __free_percpu_irq()
2392 void remove_percpu_irq(unsigned int irq, struct irqaction *act) in remove_percpu_irq() argument
2394 struct irq_desc *desc = irq_to_desc(irq); in remove_percpu_irq()
2397 __free_percpu_irq(irq, act->percpu_dev_id); in remove_percpu_irq()
2412 void free_percpu_irq(unsigned int irq, void __percpu *dev_id) in free_percpu_irq() argument
2414 struct irq_desc *desc = irq_to_desc(irq); in free_percpu_irq()
2420 kfree(__free_percpu_irq(irq, dev_id)); in free_percpu_irq()
2425 void free_percpu_nmi(unsigned int irq, void __percpu *dev_id) in free_percpu_nmi() argument
2427 struct irq_desc *desc = irq_to_desc(irq); in free_percpu_nmi()
2435 kfree(__free_percpu_irq(irq, dev_id)); in free_percpu_nmi()
2445 int setup_percpu_irq(unsigned int irq, struct irqaction *act) in setup_percpu_irq() argument
2447 struct irq_desc *desc = irq_to_desc(irq); in setup_percpu_irq()
2457 retval = __setup_irq(irq, desc, act); in setup_percpu_irq()
2482 int __request_percpu_irq(unsigned int irq, irq_handler_t handler, in __request_percpu_irq() argument
2493 desc = irq_to_desc(irq); in __request_percpu_irq()
2516 retval = __setup_irq(irq, desc, action); in __request_percpu_irq()
2548 int request_percpu_nmi(unsigned int irq, irq_handler_t handler, in request_percpu_nmi() argument
2559 desc = irq_to_desc(irq); in request_percpu_nmi()
2585 retval = __setup_irq(irq, desc, action); in request_percpu_nmi()
2616 int prepare_percpu_nmi(unsigned int irq) in prepare_percpu_nmi() argument
2624 desc = irq_get_desc_lock(irq, &flags, in prepare_percpu_nmi()
2631 irq)) { in prepare_percpu_nmi()
2638 pr_err("Failed to setup NMI delivery: irq %u\n", irq); in prepare_percpu_nmi()
2659 void teardown_percpu_nmi(unsigned int irq) in teardown_percpu_nmi() argument
2666 desc = irq_get_desc_lock(irq, &flags, in teardown_percpu_nmi()
2714 int irq_get_irqchip_state(unsigned int irq, enum irqchip_irq_state which, in irq_get_irqchip_state() argument
2722 desc = irq_get_desc_buslock(irq, &flags, 0); in irq_get_irqchip_state()
2747 int irq_set_irqchip_state(unsigned int irq, enum irqchip_irq_state which, in irq_set_irqchip_state() argument
2756 desc = irq_get_desc_buslock(irq, &flags, 0); in irq_set_irqchip_state()