mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-30 18:47:25 +00:00 
			
		
		
		
	 27ada410c7
			
		
	
	
		27ada410c7
		
	
	
	
	
		
			
			This patch adds support for 10 hardirq bits to the ARM architecture. Needed by the SH-Mobile ARM processor sh7372 that has more than 512 IRQs. Signed-off-by: Magnus Damm <damm@opensource.se> Acked-by: Eric Miao <eric.y.miao@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
		
			
				
	
	
		
			35 lines
		
	
	
		
			733 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			733 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef __ASM_HARDIRQ_H
 | |
| #define __ASM_HARDIRQ_H
 | |
| 
 | |
| #include <linux/cache.h>
 | |
| #include <linux/threads.h>
 | |
| #include <asm/irq.h>
 | |
| 
 | |
| typedef struct {
 | |
| 	unsigned int __softirq_pending;
 | |
| 	unsigned int local_timer_irqs;
 | |
| } ____cacheline_aligned irq_cpustat_t;
 | |
| 
 | |
| #include <linux/irq_cpustat.h>	/* Standard mappings for irq_cpustat_t above */
 | |
| 
 | |
| #if NR_IRQS > 512
 | |
| #define HARDIRQ_BITS	10
 | |
| #elif NR_IRQS > 256
 | |
| #define HARDIRQ_BITS	9
 | |
| #else
 | |
| #define HARDIRQ_BITS	8
 | |
| #endif
 | |
| 
 | |
| /*
 | |
|  * The hardirq mask has to be large enough to have space
 | |
|  * for potentially all IRQ sources in the system nesting
 | |
|  * on a single CPU:
 | |
|  */
 | |
| #if (1 << HARDIRQ_BITS) < NR_IRQS
 | |
| # error HARDIRQ_BITS is too low!
 | |
| #endif
 | |
| 
 | |
| #define __ARCH_IRQ_EXIT_IRQS_DISABLED	1
 | |
| 
 | |
| #endif /* __ASM_HARDIRQ_H */
 |