Lines Matching refs:desc

32 	struct irq_desc *desc;  in resend_irqs()  local
38 desc = irq_to_desc(irq); in resend_irqs()
39 if (!desc) in resend_irqs()
42 desc->handle_irq(desc); in resend_irqs()
50 static int irq_sw_resend(struct irq_desc *desc) in irq_sw_resend() argument
52 unsigned int irq = irq_desc_get_irq(desc); in irq_sw_resend()
58 if (handle_enforce_irqctx(&desc->irq_data)) in irq_sw_resend()
66 if (irq_settings_is_nested_thread(desc)) { in irq_sw_resend()
71 if (!desc->parent_irq) in irq_sw_resend()
73 irq = desc->parent_irq; in irq_sw_resend()
83 static int irq_sw_resend(struct irq_desc *desc) in irq_sw_resend() argument
89 static int try_retrigger(struct irq_desc *desc) in try_retrigger() argument
91 if (desc->irq_data.chip->irq_retrigger) in try_retrigger()
92 return desc->irq_data.chip->irq_retrigger(&desc->irq_data); in try_retrigger()
95 return irq_chip_retrigger_hierarchy(&desc->irq_data); in try_retrigger()
106 int check_irq_resend(struct irq_desc *desc, bool inject) in check_irq_resend() argument
115 if (irq_settings_is_level(desc)) { in check_irq_resend()
116 desc->istate &= ~IRQS_PENDING; in check_irq_resend()
120 if (desc->istate & IRQS_REPLAY) in check_irq_resend()
123 if (!(desc->istate & IRQS_PENDING) && !inject) in check_irq_resend()
126 desc->istate &= ~IRQS_PENDING; in check_irq_resend()
128 if (!try_retrigger(desc)) in check_irq_resend()
129 err = irq_sw_resend(desc); in check_irq_resend()
133 desc->istate |= IRQS_REPLAY; in check_irq_resend()
157 struct irq_desc *desc; in irq_inject_interrupt() local
166 desc = irq_get_desc_buslock(irq, &flags, 0); in irq_inject_interrupt()
167 if (!desc) in irq_inject_interrupt()
175 if ((desc->istate & IRQS_NMI) || !irqd_is_activated(&desc->irq_data)) in irq_inject_interrupt()
178 err = check_irq_resend(desc, true); in irq_inject_interrupt()
180 irq_put_desc_busunlock(desc, flags); in irq_inject_interrupt()