31 lines
		
	
	
		
			676 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			676 B
		
	
	
	
		
			C
		
	
	
	
	
	
| // SPDX-License-Identifier: GPL-2.0-or-later
 | |
| /*
 | |
|  * Copyright (C) 2001 Dave Engebretsen IBM Corporation
 | |
|  */
 | |
| 
 | |
| #include <linux/interrupt.h>
 | |
| #include <linux/of_irq.h>
 | |
| 
 | |
| #include "pseries.h"
 | |
| 
 | |
| void __init request_event_sources_irqs(struct device_node *np,
 | |
| 				irq_handler_t handler,
 | |
| 				const char *name)
 | |
| {
 | |
| 	int i, virq, rc;
 | |
| 
 | |
| 	for (i = 0; i < 16; i++) {
 | |
| 		virq = of_irq_get(np, i);
 | |
| 		if (virq < 0)
 | |
| 			return;
 | |
| 		if (WARN(!virq, "event-sources: Unable to allocate "
 | |
| 			        "interrupt number for %pOF\n", np))
 | |
| 			continue;
 | |
| 
 | |
| 		rc = request_irq(virq, handler, 0, name, NULL);
 | |
| 		if (WARN(rc, "event-sources: Unable to request interrupt %d for %pOF\n",
 | |
| 		    virq, np))
 | |
| 			return;
 | |
| 	}
 | |
| }
 |