• Home
  • Raw
  • Download

Lines Matching refs:new

1142 static int irq_setup_forced_threading(struct irqaction *new)  in irq_setup_forced_threading()  argument
1146 if (new->flags & (IRQF_NO_THREAD | IRQF_PERCPU | IRQF_ONESHOT)) in irq_setup_forced_threading()
1153 if (new->handler == irq_default_primary_handler) in irq_setup_forced_threading()
1156 new->flags |= IRQF_ONESHOT; in irq_setup_forced_threading()
1163 if (new->handler && new->thread_fn) { in irq_setup_forced_threading()
1165 new->secondary = kzalloc(sizeof(struct irqaction), GFP_KERNEL); in irq_setup_forced_threading()
1166 if (!new->secondary) in irq_setup_forced_threading()
1168 new->secondary->handler = irq_forced_secondary_handler; in irq_setup_forced_threading()
1169 new->secondary->thread_fn = new->thread_fn; in irq_setup_forced_threading()
1170 new->secondary->dev_id = new->dev_id; in irq_setup_forced_threading()
1171 new->secondary->irq = new->irq; in irq_setup_forced_threading()
1172 new->secondary->name = new->name; in irq_setup_forced_threading()
1175 set_bit(IRQTF_FORCED_THREAD, &new->thread_flags); in irq_setup_forced_threading()
1176 new->thread_fn = new->handler; in irq_setup_forced_threading()
1177 new->handler = irq_default_primary_handler; in irq_setup_forced_threading()
1232 setup_irq_thread(struct irqaction *new, unsigned int irq, bool secondary) in setup_irq_thread() argument
1240 t = kthread_create(irq_thread, new, "irq/%d-%s", irq, in setup_irq_thread()
1241 new->name); in setup_irq_thread()
1243 t = kthread_create(irq_thread, new, "irq/%d-s-%s", irq, in setup_irq_thread()
1244 new->name); in setup_irq_thread()
1258 new->thread = get_task_struct(t); in setup_irq_thread()
1268 set_bit(IRQTF_AFFINITY, &new->thread_flags); in setup_irq_thread()
1287 __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new) in __setup_irq() argument
1301 new->irq = irq; in __setup_irq()
1307 if (!(new->flags & IRQF_TRIGGER_MASK)) in __setup_irq()
1308 new->flags |= irqd_get_trigger_type(&desc->irq_data); in __setup_irq()
1316 if (!new->thread_fn) { in __setup_irq()
1325 new->handler = irq_nested_primary_handler; in __setup_irq()
1328 ret = irq_setup_forced_threading(new); in __setup_irq()
1339 if (new->thread_fn && !nested) { in __setup_irq()
1340 ret = setup_irq_thread(new, irq, false); in __setup_irq()
1343 if (new->secondary) { in __setup_irq()
1344 ret = setup_irq_thread(new->secondary, irq, true); in __setup_irq()
1360 new->flags &= ~IRQF_ONESHOT; in __setup_irq()
1383 new->name, irq, desc->irq_data.chip->name); in __setup_irq()
1410 new->name, irq, desc->irq_data.chip->name); in __setup_irq()
1422 oldtype = new->flags & IRQF_TRIGGER_MASK; in __setup_irq()
1426 if (!((old->flags & new->flags) & IRQF_SHARED) || in __setup_irq()
1427 (oldtype != (new->flags & IRQF_TRIGGER_MASK)) || in __setup_irq()
1428 ((old->flags ^ new->flags) & IRQF_ONESHOT)) in __setup_irq()
1433 (new->flags & IRQF_PERCPU)) in __setup_irq()
1455 if (new->flags & IRQF_ONESHOT) { in __setup_irq()
1484 new->thread_mask = 1UL << ffz(thread_mask); in __setup_irq()
1486 } else if (new->handler == irq_default_primary_handler && in __setup_irq()
1513 if (new->flags & IRQF_TRIGGER_MASK) { in __setup_irq()
1515 new->flags & IRQF_TRIGGER_MASK); in __setup_irq()
1540 if (new->flags & IRQF_PERCPU) { in __setup_irq()
1545 if (new->flags & IRQF_ONESHOT) in __setup_irq()
1549 if (new->flags & IRQF_NOBALANCING) { in __setup_irq()
1563 WARN_ON_ONCE(new->flags & IRQF_SHARED); in __setup_irq()
1568 } else if (new->flags & IRQF_TRIGGER_MASK) { in __setup_irq()
1569 unsigned int nmsk = new->flags & IRQF_TRIGGER_MASK; in __setup_irq()
1578 *old_ptr = new; in __setup_irq()
1580 irq_pm_install_action(desc, new); in __setup_irq()
1599 irq_setup_timings(desc, new); in __setup_irq()
1605 if (new->thread) in __setup_irq()
1606 wake_up_process(new->thread); in __setup_irq()
1607 if (new->secondary) in __setup_irq()
1608 wake_up_process(new->secondary->thread); in __setup_irq()
1611 new->dir = NULL; in __setup_irq()
1612 register_handler_proc(irq, new); in __setup_irq()
1616 if (!(new->flags & IRQF_PROBE_SHARED)) { in __setup_irq()
1618 irq, new->flags, new->name, old->flags, old->name); in __setup_irq()
1635 if (new->thread) { in __setup_irq()
1636 struct task_struct *t = new->thread; in __setup_irq()
1638 new->thread = NULL; in __setup_irq()
1642 if (new->secondary && new->secondary->thread) { in __setup_irq()
1643 struct task_struct *t = new->secondary->thread; in __setup_irq()
1645 new->secondary->thread = NULL; in __setup_irq()