[ARM] 3709/1: pnx4008: convert to generic irq subsystem

Patch from Vitaly Wool

Convert pnx4008 chip support to use generic irq subsystem

Signed-off-by: Vitaly Wool <vitalywool@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by Vitaly Wool and committed by Russell King 5904a7f9 20e65276

+13 -20
-2
arch/arm/mach-pnx4008/core.c
··· 27 #include <linux/spi/spi.h> 28 29 #include <asm/hardware.h> 30 - #include <asm/irq.h> 31 #include <asm/io.h> 32 #include <asm/setup.h> 33 #include <asm/mach-types.h> ··· 35 #include <asm/system.h> 36 37 #include <asm/mach/arch.h> 38 - #include <asm/mach/irq.h> 39 #include <asm/mach/map.h> 40 #include <asm/mach/time.h> 41
··· 27 #include <linux/spi/spi.h> 28 29 #include <asm/hardware.h> 30 #include <asm/io.h> 31 #include <asm/setup.h> 32 #include <asm/mach-types.h> ··· 36 #include <asm/system.h> 37 38 #include <asm/mach/arch.h> 39 #include <asm/mach/map.h> 40 #include <asm/mach/time.h> 41
-1
arch/arm/mach-pnx4008/dma.c
··· 23 #include <linux/clk.h> 24 25 #include <asm/system.h> 26 - #include <asm/irq.h> 27 #include <asm/hardware.h> 28 #include <asm/dma.h> 29 #include <asm/dma-mapping.h>
··· 23 #include <linux/clk.h> 24 25 #include <asm/system.h> 26 #include <asm/hardware.h> 27 #include <asm/dma.h> 28 #include <asm/dma-mapping.h>
+10 -12
arch/arm/mach-pnx4008/irq.c
··· 22 #include <linux/init.h> 23 #include <linux/ioport.h> 24 #include <linux/device.h> 25 #include <asm/hardware.h> 26 - #include <asm/irq.h> 27 #include <asm/io.h> 28 #include <asm/setup.h> 29 #include <asm/mach-types.h> ··· 96 { 97 unsigned int i; 98 99 - /* configure and enable IRQ 0,1,30,31 (cascade interrupts) mask all others */ 100 pnx4008_set_irq_type(SUB1_IRQ_N, pnx4008_irq_type[SUB1_IRQ_N]); 101 pnx4008_set_irq_type(SUB2_IRQ_N, pnx4008_irq_type[SUB2_IRQ_N]); 102 pnx4008_set_irq_type(SUB1_FIQ_N, pnx4008_irq_type[SUB1_FIQ_N]); 103 pnx4008_set_irq_type(SUB2_FIQ_N, pnx4008_irq_type[SUB2_FIQ_N]); 104 105 __raw_writel((1 << SUB2_FIQ_N) | (1 << SUB1_FIQ_N) | 106 (1 << SUB2_IRQ_N) | (1 << SUB1_IRQ_N), 107 INTC_ER(MAIN_BASE_INT)); 108 __raw_writel(0, INTC_ER(SIC1_BASE_INT)); 109 __raw_writel(0, INTC_ER(SIC2_BASE_INT)); 110 - 111 - /* configure all other IRQ's */ 112 - for (i = 0; i < NR_IRQS; i++) { 113 - if (i == SUB2_FIQ_N || i == SUB1_FIQ_N || 114 - i == SUB2_IRQ_N || i == SUB1_IRQ_N) 115 - continue; 116 - set_irq_flags(i, IRQF_VALID); 117 - set_irq_chip(i, &pnx4008_irq_chip); 118 - pnx4008_set_irq_type(i, pnx4008_irq_type[i]); 119 - } 120 } 121
··· 22 #include <linux/init.h> 23 #include <linux/ioport.h> 24 #include <linux/device.h> 25 + #include <linux/irq.h> 26 #include <asm/hardware.h> 27 #include <asm/io.h> 28 #include <asm/setup.h> 29 #include <asm/mach-types.h> ··· 96 { 97 unsigned int i; 98 99 + /* configure IRQ's */ 100 + for (i = 0; i < NR_IRQS; i++) { 101 + set_irq_flags(i, IRQF_VALID); 102 + set_irq_chip(i, &pnx4008_irq_chip); 103 + pnx4008_set_irq_type(i, pnx4008_irq_type[i]); 104 + } 105 + 106 + /* configure and enable IRQ 0,1,30,31 (cascade interrupts) */ 107 pnx4008_set_irq_type(SUB1_IRQ_N, pnx4008_irq_type[SUB1_IRQ_N]); 108 pnx4008_set_irq_type(SUB2_IRQ_N, pnx4008_irq_type[SUB2_IRQ_N]); 109 pnx4008_set_irq_type(SUB1_FIQ_N, pnx4008_irq_type[SUB1_FIQ_N]); 110 pnx4008_set_irq_type(SUB2_FIQ_N, pnx4008_irq_type[SUB2_FIQ_N]); 111 112 + /* mask all others */ 113 __raw_writel((1 << SUB2_FIQ_N) | (1 << SUB1_FIQ_N) | 114 (1 << SUB2_IRQ_N) | (1 << SUB1_IRQ_N), 115 INTC_ER(MAIN_BASE_INT)); 116 __raw_writel(0, INTC_ER(SIC1_BASE_INT)); 117 __raw_writel(0, INTC_ER(SIC2_BASE_INT)); 118 } 119
+3 -5
arch/arm/mach-pnx4008/time.c
··· 20 #include <linux/spinlock.h> 21 #include <linux/module.h> 22 #include <linux/kallsyms.h> 23 24 #include <asm/system.h> 25 #include <asm/hardware.h> 26 #include <asm/io.h> 27 #include <asm/leds.h> 28 - #include <asm/irq.h> 29 - #include <asm/mach/irq.h> 30 #include <asm/mach/time.h> 31 - 32 - #include <linux/time.h> 33 - #include <linux/timex.h> 34 #include <asm/errno.h> 35 36 /*! Note: all timers are UPCOUNTING */
··· 20 #include <linux/spinlock.h> 21 #include <linux/module.h> 22 #include <linux/kallsyms.h> 23 + #include <linux/time.h> 24 + #include <linux/timex.h> 25 + #include <linux/irq.h> 26 27 #include <asm/system.h> 28 #include <asm/hardware.h> 29 #include <asm/io.h> 30 #include <asm/leds.h> 31 #include <asm/mach/time.h> 32 #include <asm/errno.h> 33 34 /*! Note: all timers are UPCOUNTING */