Lines Matching refs:irq

75 bool synchronize_hardirq(unsigned int irq)  in synchronize_hardirq()  argument
77 struct irq_desc *desc = irq_to_desc(irq); in synchronize_hardirq()
98 void synchronize_irq(unsigned int irq) in synchronize_irq() argument
100 struct irq_desc *desc = irq_to_desc(irq); in synchronize_irq()
123 int irq_can_set_affinity(unsigned int irq) in irq_can_set_affinity() argument
125 struct irq_desc *desc = irq_to_desc(irq); in irq_can_set_affinity()
228 int __irq_set_affinity(unsigned int irq, const struct cpumask *mask, bool force) in __irq_set_affinity() argument
230 struct irq_desc *desc = irq_to_desc(irq); in __irq_set_affinity()
243 int irq_set_affinity_hint(unsigned int irq, const struct cpumask *m) in irq_set_affinity_hint() argument
246 struct irq_desc *desc = irq_get_desc_lock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL); in irq_set_affinity_hint()
254 __irq_set_affinity(irq, m, false); in irq_set_affinity_hint()
263 struct irq_desc *desc = irq_to_desc(notify->irq); in irq_affinity_notify()
296 irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify) in irq_set_affinity_notifier() argument
298 struct irq_desc *desc = irq_to_desc(irq); in irq_set_affinity_notifier()
310 notify->irq = irq; in irq_set_affinity_notifier()
332 setup_affinity(unsigned int irq, struct irq_desc *desc, struct cpumask *mask) in setup_affinity() argument
338 if (!irq_can_set_affinity(irq)) in setup_affinity()
366 setup_affinity(unsigned int irq, struct irq_desc *d, struct cpumask *mask) in setup_affinity() argument
368 return irq_select_affinity(irq); in setup_affinity()
375 int irq_select_affinity_usr(unsigned int irq, struct cpumask *mask) in irq_select_affinity_usr() argument
377 struct irq_desc *desc = irq_to_desc(irq); in irq_select_affinity_usr()
382 ret = setup_affinity(irq, desc, mask); in irq_select_affinity_usr()
389 setup_affinity(unsigned int irq, struct irq_desc *desc, struct cpumask *mask) in setup_affinity() argument
395 void __disable_irq(struct irq_desc *desc, unsigned int irq) in __disable_irq() argument
401 static int __disable_irq_nosync(unsigned int irq) in __disable_irq_nosync() argument
404 struct irq_desc *desc = irq_get_desc_buslock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL); in __disable_irq_nosync()
408 __disable_irq(desc, irq); in __disable_irq_nosync()
424 void disable_irq_nosync(unsigned int irq) in disable_irq_nosync() argument
426 __disable_irq_nosync(irq); in disable_irq_nosync()
442 void disable_irq(unsigned int irq) in disable_irq() argument
444 if (!__disable_irq_nosync(irq)) in disable_irq()
445 synchronize_irq(irq); in disable_irq()
466 bool disable_hardirq(unsigned int irq) in disable_hardirq() argument
468 if (!__disable_irq_nosync(irq)) in disable_hardirq()
469 return synchronize_hardirq(irq); in disable_hardirq()
475 void __enable_irq(struct irq_desc *desc, unsigned int irq) in __enable_irq() argument
480 WARN(1, KERN_WARNING "Unbalanced enable for IRQ %d\n", irq); in __enable_irq()
488 check_irq_resend(desc, irq); in __enable_irq()
507 void enable_irq(unsigned int irq) in enable_irq() argument
510 struct irq_desc *desc = irq_get_desc_buslock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL); in enable_irq()
515 KERN_ERR "enable_irq before setup/request_irq: irq %u\n", irq)) in enable_irq()
518 __enable_irq(desc, irq); in enable_irq()
524 static int set_irq_wake_real(unsigned int irq, unsigned int on) in set_irq_wake_real() argument
526 struct irq_desc *desc = irq_to_desc(irq); in set_irq_wake_real()
550 int irq_set_irq_wake(unsigned int irq, unsigned int on) in irq_set_irq_wake() argument
553 struct irq_desc *desc = irq_get_desc_buslock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL); in irq_set_irq_wake()
564 ret = set_irq_wake_real(irq, on); in irq_set_irq_wake()
572 WARN(1, "Unbalanced IRQ %d wake disable\n", irq); in irq_set_irq_wake()
574 ret = set_irq_wake_real(irq, on); in irq_set_irq_wake()
591 int can_request_irq(unsigned int irq, unsigned long irqflags) in can_request_irq() argument
594 struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); in can_request_irq()
609 int __irq_set_trigger(struct irq_desc *desc, unsigned int irq, in __irq_set_trigger() argument
620 pr_debug("No set_type function for IRQ %d (%s)\n", irq, in __irq_set_trigger()
657 flags, irq, chip->irq_set_type); in __irq_set_trigger()
665 int irq_set_parent(int irq, int parent_irq) in irq_set_parent() argument
668 struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); in irq_set_parent()
685 static irqreturn_t irq_default_primary_handler(int irq, void *dev_id) in irq_default_primary_handler() argument
694 static irqreturn_t irq_nested_primary_handler(int irq, void *dev_id) in irq_nested_primary_handler() argument
696 WARN(1, "Primary handler called for nested irq %d\n", irq); in irq_nested_primary_handler()
826 ret = action->thread_fn(action->irq, action->dev_id); in irq_forced_thread_fn()
842 ret = action->thread_fn(action->irq, action->dev_id); in irq_thread_fn()
865 tsk->comm, tsk->pid, action->irq); in irq_thread_dtor()
868 desc = irq_to_desc(action->irq); in irq_thread_dtor()
887 struct irq_desc *desc = irq_to_desc(action->irq); in irq_thread()
933 void irq_wake_thread(unsigned int irq, void *dev_id) in irq_wake_thread() argument
935 struct irq_desc *desc = irq_to_desc(irq); in irq_wake_thread()
992 __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new) in __setup_irq() argument
1039 t = kthread_create(irq_thread, new, "irq/%d-%s", irq, in __setup_irq()
1176 irq); in __setup_irq()
1185 new->name, irq, desc->irq_data.chip->name); in __setup_irq()
1193 ret = __irq_set_trigger(desc, irq, in __setup_irq()
1225 setup_affinity(irq, desc, mask); in __setup_irq()
1234 irq, nmsk, omsk); in __setup_irq()
1237 new->irq = irq; in __setup_irq()
1252 __enable_irq(desc, irq); in __setup_irq()
1264 register_irq_proc(irq, desc); in __setup_irq()
1266 register_handler_proc(irq, new); in __setup_irq()
1274 irq, new->flags, new->name, old->flags, old->name); in __setup_irq()
1305 int setup_irq(unsigned int irq, struct irqaction *act) in setup_irq() argument
1308 struct irq_desc *desc = irq_to_desc(irq); in setup_irq()
1313 retval = __setup_irq(irq, desc, act); in setup_irq()
1324 static struct irqaction *__free_irq(unsigned int irq, void *dev_id) in __free_irq() argument
1326 struct irq_desc *desc = irq_to_desc(irq); in __free_irq()
1330 WARN(in_interrupt(), "Trying to free IRQ %d from IRQ context!\n", irq); in __free_irq()
1346 WARN(1, "Trying to free already-free IRQ %d\n", irq); in __free_irq()
1376 unregister_handler_proc(irq, action); in __free_irq()
1379 synchronize_irq(irq); in __free_irq()
1392 action->handler(irq, dev_id); in __free_irq()
1413 void remove_irq(unsigned int irq, struct irqaction *act) in remove_irq() argument
1415 struct irq_desc *desc = irq_to_desc(irq); in remove_irq()
1418 __free_irq(irq, act->dev_id); in remove_irq()
1436 void free_irq(unsigned int irq, void *dev_id) in free_irq() argument
1438 struct irq_desc *desc = irq_to_desc(irq); in free_irq()
1449 kfree(__free_irq(irq, dev_id)); in free_irq()
1496 int request_threaded_irq(unsigned int irq, irq_handler_t handler, in request_threaded_irq() argument
1518 desc = irq_to_desc(irq); in request_threaded_irq()
1543 retval = __setup_irq(irq, desc, action); in request_threaded_irq()
1559 disable_irq(irq); in request_threaded_irq()
1562 handler(irq, dev_id); in request_threaded_irq()
1565 enable_irq(irq); in request_threaded_irq()
1589 int request_any_context_irq(unsigned int irq, irq_handler_t handler, in request_any_context_irq() argument
1592 struct irq_desc *desc = irq_to_desc(irq); in request_any_context_irq()
1599 ret = request_threaded_irq(irq, NULL, handler, in request_any_context_irq()
1604 ret = request_irq(irq, handler, flags, name, dev_id); in request_any_context_irq()
1609 void enable_percpu_irq(unsigned int irq, unsigned int type) in enable_percpu_irq() argument
1613 struct irq_desc *desc = irq_get_desc_lock(irq, &flags, IRQ_GET_DESC_CHECK_PERCPU); in enable_percpu_irq()
1622 ret = __irq_set_trigger(desc, irq, type); in enable_percpu_irq()
1625 WARN(1, "failed to set type for IRQ%d\n", irq); in enable_percpu_irq()
1636 void disable_percpu_irq(unsigned int irq) in disable_percpu_irq() argument
1640 struct irq_desc *desc = irq_get_desc_lock(irq, &flags, IRQ_GET_DESC_CHECK_PERCPU); in disable_percpu_irq()
1653 static struct irqaction *__free_percpu_irq(unsigned int irq, void __percpu *dev_id) in __free_percpu_irq() argument
1655 struct irq_desc *desc = irq_to_desc(irq); in __free_percpu_irq()
1659 WARN(in_interrupt(), "Trying to free IRQ %d from IRQ context!\n", irq); in __free_percpu_irq()
1668 WARN(1, "Trying to free already-free IRQ %d\n", irq); in __free_percpu_irq()
1674 irq, cpumask_first(desc->percpu_enabled)); in __free_percpu_irq()
1683 unregister_handler_proc(irq, action); in __free_percpu_irq()
1700 void remove_percpu_irq(unsigned int irq, struct irqaction *act) in remove_percpu_irq() argument
1702 struct irq_desc *desc = irq_to_desc(irq); in remove_percpu_irq()
1705 __free_percpu_irq(irq, act->percpu_dev_id); in remove_percpu_irq()
1720 void free_percpu_irq(unsigned int irq, void __percpu *dev_id) in free_percpu_irq() argument
1722 struct irq_desc *desc = irq_to_desc(irq); in free_percpu_irq()
1728 kfree(__free_percpu_irq(irq, dev_id)); in free_percpu_irq()
1739 int setup_percpu_irq(unsigned int irq, struct irqaction *act) in setup_percpu_irq() argument
1741 struct irq_desc *desc = irq_to_desc(irq); in setup_percpu_irq()
1747 retval = __setup_irq(irq, desc, act); in setup_percpu_irq()
1768 int request_percpu_irq(unsigned int irq, irq_handler_t handler, in request_percpu_irq() argument
1778 desc = irq_to_desc(irq); in request_percpu_irq()
1793 retval = __setup_irq(irq, desc, action); in request_percpu_irq()
1815 int irq_get_irqchip_state(unsigned int irq, enum irqchip_irq_state which, in irq_get_irqchip_state() argument
1824 desc = irq_get_desc_buslock(irq, &flags, 0); in irq_get_irqchip_state()
1860 int irq_set_irqchip_state(unsigned int irq, enum irqchip_irq_state which, in irq_set_irqchip_state() argument
1869 desc = irq_get_desc_buslock(irq, &flags, 0); in irq_set_irqchip_state()