1
2
3
4
5
6#include <linux/interrupt.h>
7#include <linux/of_irq.h>
8
9#include "pseries.h"
10
11void request_event_sources_irqs(struct device_node *np,
12 irq_handler_t handler,
13 const char *name)
14{
15 int i, virq, rc;
16
17 for (i = 0; i < 16; i++) {
18 virq = of_irq_get(np, i);
19 if (virq < 0)
20 return;
21 if (WARN(!virq, "event-sources: Unable to allocate "
22 "interrupt number for %pOF\n", np))
23 continue;
24
25 rc = request_irq(virq, handler, 0, name, NULL);
26 if (WARN(rc, "event-sources: Unable to request interrupt %d for %pOF\n",
27 virq, np))
28 return;
29 }
30}
31