Lines Matching refs:desc

35 		struct irq_desc *desc;  in resend_irqs()  local
37 desc = hlist_entry(irq_resend_list.first, struct irq_desc, resend_node); in resend_irqs()
38 hlist_del_init(&desc->resend_node); in resend_irqs()
41 desc->handle_irq(desc); in resend_irqs()
49 static int irq_sw_resend(struct irq_desc *desc) in irq_sw_resend() argument
55 if (irqd_is_handle_enforce_irqctx(&desc->irq_data)) in irq_sw_resend()
63 if (irq_settings_is_nested_thread(desc)) { in irq_sw_resend()
68 if (!desc->parent_irq) in irq_sw_resend()
71 desc = irq_to_desc(desc->parent_irq); in irq_sw_resend()
72 if (!desc) in irq_sw_resend()
78 if (hlist_unhashed(&desc->resend_node)) in irq_sw_resend()
79 hlist_add_head(&desc->resend_node, &irq_resend_list); in irq_sw_resend()
85 void clear_irq_resend(struct irq_desc *desc) in clear_irq_resend() argument
88 hlist_del_init(&desc->resend_node); in clear_irq_resend()
91 void irq_resend_init(struct irq_desc *desc) in irq_resend_init() argument
93 INIT_HLIST_NODE(&desc->resend_node); in irq_resend_init()
96 void clear_irq_resend(struct irq_desc *desc) {} in clear_irq_resend() argument
97 void irq_resend_init(struct irq_desc *desc) {} in irq_resend_init() argument
99 static int irq_sw_resend(struct irq_desc *desc) in irq_sw_resend() argument
105 static int try_retrigger(struct irq_desc *desc) in try_retrigger() argument
107 if (desc->irq_data.chip->irq_retrigger) in try_retrigger()
108 return desc->irq_data.chip->irq_retrigger(&desc->irq_data); in try_retrigger()
111 return irq_chip_retrigger_hierarchy(&desc->irq_data); in try_retrigger()
122 int check_irq_resend(struct irq_desc *desc, bool inject) in check_irq_resend() argument
131 if (irq_settings_is_level(desc)) { in check_irq_resend()
132 desc->istate &= ~IRQS_PENDING; in check_irq_resend()
136 if (desc->istate & IRQS_REPLAY) in check_irq_resend()
139 if (!(desc->istate & IRQS_PENDING) && !inject) in check_irq_resend()
142 desc->istate &= ~IRQS_PENDING; in check_irq_resend()
144 if (!try_retrigger(desc)) in check_irq_resend()
145 err = irq_sw_resend(desc); in check_irq_resend()
149 desc->istate |= IRQS_REPLAY; in check_irq_resend()
181 struct irq_desc *desc = scoped_irqdesc; in irq_inject_interrupt() local
188 if (!irq_is_nmi(desc) && irqd_is_activated(&desc->irq_data)) in irq_inject_interrupt()
189 err = check_irq_resend(desc, true); in irq_inject_interrupt()