| 
									
										
										
										
											2005-06-23 22:01:26 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * include/asm-xtensa/irq.h | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * 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. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Copyright (C) 2001 - 2005 Tensilica Inc. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef _XTENSA_IRQ_H
 | 
					
						
							|  |  |  | #define _XTENSA_IRQ_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-05 15:03:21 +00:00
										 |  |  | #include <linux/init.h>
 | 
					
						
							| 
									
										
										
										
											2008-11-06 06:40:46 -08:00
										 |  |  | #include <platform/hardware.h>
 | 
					
						
							|  |  |  | #include <variant/core.h>
 | 
					
						
							| 
									
										
										
										
											2005-06-23 22:01:26 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-04 16:21:31 +01:00
										 |  |  | #ifdef CONFIG_VARIANT_IRQ_SWITCH
 | 
					
						
							|  |  |  | #include <variant/irq.h>
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | static inline void variant_irq_enable(unsigned int irq) { } | 
					
						
							|  |  |  | static inline void variant_irq_disable(unsigned int irq) { } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-05 15:03:21 +00:00
										 |  |  | #ifndef VARIANT_NR_IRQS
 | 
					
						
							|  |  |  | # define VARIANT_NR_IRQS 0
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2005-06-23 22:01:26 -07:00
										 |  |  | #ifndef PLATFORM_NR_IRQS
 | 
					
						
							|  |  |  | # define PLATFORM_NR_IRQS 0
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #define XTENSA_NR_IRQS XCHAL_NUM_INTERRUPTS
 | 
					
						
							| 
									
										
										
										
											2009-05-05 15:03:21 +00:00
										 |  |  | #define NR_IRQS (XTENSA_NR_IRQS + VARIANT_NR_IRQS + PLATFORM_NR_IRQS)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if VARIANT_NR_IRQS == 0
 | 
					
						
							|  |  |  | static inline void variant_init_irq(void) { } | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | void variant_init_irq(void) __init; | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2005-06-23 22:01:26 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | static __inline__ int irq_canonicalize(int irq) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return (irq); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct irqaction; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif	/* _XTENSA_IRQ_H */
 |