Lines Matching refs:new

954 static void irq_setup_forced_threading(struct irqaction *new)  in irq_setup_forced_threading()  argument
958 if (new->flags & (IRQF_NO_THREAD | IRQF_PERCPU | IRQF_ONESHOT)) in irq_setup_forced_threading()
961 new->flags |= IRQF_ONESHOT; in irq_setup_forced_threading()
963 if (!new->thread_fn) { in irq_setup_forced_threading()
964 set_bit(IRQTF_FORCED_THREAD, &new->thread_flags); in irq_setup_forced_threading()
965 new->thread_fn = new->handler; in irq_setup_forced_threading()
966 new->handler = irq_default_primary_handler; in irq_setup_forced_threading()
992 __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new) in __setup_irq() argument
1013 if (!new->thread_fn) { in __setup_irq()
1022 new->handler = irq_nested_primary_handler; in __setup_irq()
1025 irq_setup_forced_threading(new); in __setup_irq()
1033 if (new->thread_fn && !nested) { in __setup_irq()
1039 t = kthread_create(irq_thread, new, "irq/%d-%s", irq, in __setup_irq()
1040 new->name); in __setup_irq()
1054 new->thread = t; in __setup_irq()
1064 set_bit(IRQTF_AFFINITY, &new->thread_flags); in __setup_irq()
1082 new->flags &= ~IRQF_ONESHOT; in __setup_irq()
1098 if (!((old->flags & new->flags) & IRQF_SHARED) || in __setup_irq()
1099 ((old->flags ^ new->flags) & IRQF_TRIGGER_MASK) || in __setup_irq()
1100 ((old->flags ^ new->flags) & IRQF_ONESHOT)) in __setup_irq()
1105 (new->flags & IRQF_PERCPU)) in __setup_irq()
1127 if (new->flags & IRQF_ONESHOT) { in __setup_irq()
1156 new->thread_mask = 1 << ffz(thread_mask); in __setup_irq()
1158 } else if (new->handler == irq_default_primary_handler && in __setup_irq()
1185 new->name, irq, desc->irq_data.chip->name); in __setup_irq()
1192 if (new->flags & IRQF_TRIGGER_MASK) { in __setup_irq()
1194 new->flags & IRQF_TRIGGER_MASK); in __setup_irq()
1204 if (new->flags & IRQF_PERCPU) { in __setup_irq()
1209 if (new->flags & IRQF_ONESHOT) in __setup_irq()
1219 if (new->flags & IRQF_NOBALANCING) { in __setup_irq()
1227 } else if (new->flags & IRQF_TRIGGER_MASK) { in __setup_irq()
1228 unsigned int nmsk = new->flags & IRQF_TRIGGER_MASK; in __setup_irq()
1237 new->irq = irq; in __setup_irq()
1238 *old_ptr = new; in __setup_irq()
1240 irq_pm_install_action(desc, new); in __setup_irq()
1261 if (new->thread) in __setup_irq()
1262 wake_up_process(new->thread); in __setup_irq()
1265 new->dir = NULL; in __setup_irq()
1266 register_handler_proc(irq, new); in __setup_irq()
1272 if (!(new->flags & IRQF_PROBE_SHARED)) { in __setup_irq()
1274 irq, new->flags, new->name, old->flags, old->name); in __setup_irq()
1286 if (new->thread) { in __setup_irq()
1287 struct task_struct *t = new->thread; in __setup_irq()
1289 new->thread = NULL; in __setup_irq()