1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Copyright (C) 2001 Dave Engebretsen IBM Corporation
4 */
5
6#include <linux/interrupt.h>
7#include <linux/of_irq.h>
8
9#include "pseries.h"
10
11void __init 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