40 lines
		
	
	
		
			937 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			937 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Copyright (C) 2007-2009 Michal Simek <monstr@monstr.eu>
 | |
|  * Copyright (C) 2007-2009 PetaLogix
 | |
|  * Copyright (C) 2006 Atmark Techno, Inc.
 | |
|  *
 | |
|  * This file is subject to the terms and conditions of the GNU General Public
 | |
|  * License. See the file "COPYING" in the main directory of this archive
 | |
|  * for more details.
 | |
|  */
 | |
| 
 | |
| #include <linux/init.h>
 | |
| #include <linux/ftrace.h>
 | |
| #include <linux/kernel.h>
 | |
| #include <linux/hardirq.h>
 | |
| #include <linux/interrupt.h>
 | |
| #include <linux/irqflags.h>
 | |
| #include <linux/seq_file.h>
 | |
| #include <linux/kernel_stat.h>
 | |
| #include <linux/irq.h>
 | |
| #include <linux/irqchip.h>
 | |
| #include <linux/of_irq.h>
 | |
| 
 | |
| void __irq_entry do_IRQ(struct pt_regs *regs)
 | |
| {
 | |
| 	struct pt_regs *old_regs = set_irq_regs(regs);
 | |
| 	trace_hardirqs_off();
 | |
| 
 | |
| 	irq_enter();
 | |
| 	handle_arch_irq(regs);
 | |
| 	irq_exit();
 | |
| 	set_irq_regs(old_regs);
 | |
| 	trace_hardirqs_on();
 | |
| }
 | |
| 
 | |
| void __init init_IRQ(void)
 | |
| {
 | |
| 	/* process the entire interrupt tree in one go */
 | |
| 	irqchip_init();
 | |
| }
 |