Lines Matching refs:action

58 	struct irqaction *action;  member
78 struct irqaction * action; in sun4d_get_irq_list() local
86 action = *(i + irq_action); in sun4d_get_irq_list()
87 if (!action) in sun4d_get_irq_list()
92 if ((action = sbus_actions [(j << 5) + (sbusl << 2) + k].action)) in sun4d_get_irq_list()
106 (action->flags & SA_INTERRUPT) ? '+' : ' ', in sun4d_get_irq_list()
107 action->name); in sun4d_get_irq_list()
108 action = action->next; in sun4d_get_irq_list()
110 for (; action; action = action->next) { in sun4d_get_irq_list()
112 (action->flags & SA_INTERRUPT) ? " +" : "", in sun4d_get_irq_list()
113 action->name); in sun4d_get_irq_list()
118 action = sbus_actions [(j << 5) + (sbusl << 2) + k].action; in sun4d_get_irq_list()
123 action = sbus_actions [(j << 5) + (sbusl << 2)].action; in sun4d_get_irq_list()
133 struct irqaction *action, **actionp; in sun4d_free_irq() local
140 actionp = &(sbus_actions[irq - (1 << 5)].action); in sun4d_free_irq()
141 action = *actionp; in sun4d_free_irq()
142 if (!action) { in sun4d_free_irq()
147 for (; action; action = action->next) { in sun4d_free_irq()
148 if (action->dev_id == dev_id) in sun4d_free_irq()
150 tmp = action; in sun4d_free_irq()
152 if (!action) { in sun4d_free_irq()
156 } else if (action->flags & SA_SHIRQ) { in sun4d_free_irq()
160 if (action->flags & SA_STATIC_ALLOC) in sun4d_free_irq()
166 irq, action->name); in sun4d_free_irq()
171 if (action && tmp) in sun4d_free_irq()
172 tmp->next = action->next; in sun4d_free_irq()
174 *actionp = action->next; in sun4d_free_irq()
176 kfree(action); in sun4d_free_irq()
188 struct irqaction * action; in sun4d_handler_irq() local
201 action = *(irq + irq_action); in sun4d_handler_irq()
202 if (!action) in sun4d_handler_irq()
205 action->handler(irq, action->dev_id, regs); in sun4d_handler_irq()
206 action = action->next; in sun4d_handler_irq()
207 } while (action); in sun4d_handler_irq()
227 action = actionp->action; in sun4d_handler_irq()
229 if (!action) in sun4d_handler_irq()
232 action->handler(irq, action->dev_id, regs); in sun4d_handler_irq()
233 action = action->next; in sun4d_handler_irq()
234 } while (action); in sun4d_handler_irq()
267 struct irqaction *action, *tmp = NULL, **actionp; in sun4d_request_irq() local
277 actionp = &(sbus_actions[irq - (1 << 5)].action); in sun4d_request_irq()
280 action = *actionp; in sun4d_request_irq()
282 if (action) { in sun4d_request_irq()
283 if ((action->flags & SA_SHIRQ) && (irqflags & SA_SHIRQ)) { in sun4d_request_irq()
284 for (tmp = action; tmp->next; tmp = tmp->next); in sun4d_request_irq()
288 if ((action->flags & SA_INTERRUPT) ^ (irqflags & SA_INTERRUPT)) { in sun4d_request_irq()
292 action = NULL; /* Or else! */ in sun4d_request_irq()
302 action = &static_irqaction[static_irq_count++]; in sun4d_request_irq()
307 if (action == NULL) in sun4d_request_irq()
308 action = (struct irqaction *)kmalloc(sizeof(struct irqaction), in sun4d_request_irq()
311 if (!action) { in sun4d_request_irq()
316 action->handler = handler; in sun4d_request_irq()
317 action->flags = irqflags; in sun4d_request_irq()
318 action->mask = 0; in sun4d_request_irq()
319 action->name = devname; in sun4d_request_irq()
320 action->next = NULL; in sun4d_request_irq()
321 action->dev_id = dev_id; in sun4d_request_irq()
324 tmp->next = action; in sun4d_request_irq()
326 *actionp = action; in sun4d_request_irq()