aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-s3c2416/irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-s3c2416/irq.c')
-rw-r--r--arch/arm/mach-s3c2416/irq.c76
1 files changed, 36 insertions, 40 deletions
diff --git a/arch/arm/mach-s3c2416/irq.c b/arch/arm/mach-s3c2416/irq.c
index 00174daf1526..680fe386aca5 100644
--- a/arch/arm/mach-s3c2416/irq.c
+++ b/arch/arm/mach-s3c2416/irq.c
@@ -77,28 +77,27 @@ static void s3c2416_irq_demux_wdtac97(unsigned int irq, struct irq_desc *desc)
77#define INTMSK_WDTAC97 (1UL << (IRQ_WDT - IRQ_EINT0)) 77#define INTMSK_WDTAC97 (1UL << (IRQ_WDT - IRQ_EINT0))
78#define SUBMSK_WDTAC97 INTMSK(IRQ_S3C2443_WDT, IRQ_S3C2443_AC97) 78#define SUBMSK_WDTAC97 INTMSK(IRQ_S3C2443_WDT, IRQ_S3C2443_AC97)
79 79
80static void s3c2416_irq_wdtac97_mask(unsigned int irqno) 80static void s3c2416_irq_wdtac97_mask(struct irq_data *data)
81{ 81{
82 s3c_irqsub_mask(irqno, INTMSK_WDTAC97, SUBMSK_WDTAC97); 82 s3c_irqsub_mask(data->irq, INTMSK_WDTAC97, SUBMSK_WDTAC97);
83} 83}
84 84
85static void s3c2416_irq_wdtac97_unmask(unsigned int irqno) 85static void s3c2416_irq_wdtac97_unmask(struct irq_data *data)
86{ 86{
87 s3c_irqsub_unmask(irqno, INTMSK_WDTAC97); 87 s3c_irqsub_unmask(data->irq, INTMSK_WDTAC97);
88} 88}
89 89
90static void s3c2416_irq_wdtac97_ack(unsigned int irqno) 90static void s3c2416_irq_wdtac97_ack(struct irq_data *data)
91{ 91{
92 s3c_irqsub_maskack(irqno, INTMSK_WDTAC97, SUBMSK_WDTAC97); 92 s3c_irqsub_maskack(data->irq, INTMSK_WDTAC97, SUBMSK_WDTAC97);
93} 93}
94 94
95static struct irq_chip s3c2416_irq_wdtac97 = { 95static struct irq_chip s3c2416_irq_wdtac97 = {
96 .mask = s3c2416_irq_wdtac97_mask, 96 .irq_mask = s3c2416_irq_wdtac97_mask,
97 .unmask = s3c2416_irq_wdtac97_unmask, 97 .irq_unmask = s3c2416_irq_wdtac97_unmask,
98 .ack = s3c2416_irq_wdtac97_ack, 98 .irq_ack = s3c2416_irq_wdtac97_ack,
99}; 99};
100 100
101
102/* LCD sub interrupts */ 101/* LCD sub interrupts */
103 102
104static void s3c2416_irq_demux_lcd(unsigned int irq, struct irq_desc *desc) 103static void s3c2416_irq_demux_lcd(unsigned int irq, struct irq_desc *desc)
@@ -109,28 +108,27 @@ static void s3c2416_irq_demux_lcd(unsigned int irq, struct irq_desc *desc)
109#define INTMSK_LCD (1UL << (IRQ_LCD - IRQ_EINT0)) 108#define INTMSK_LCD (1UL << (IRQ_LCD - IRQ_EINT0))
110#define SUBMSK_LCD INTMSK(IRQ_S3C2443_LCD1, IRQ_S3C2443_LCD4) 109#define SUBMSK_LCD INTMSK(IRQ_S3C2443_LCD1, IRQ_S3C2443_LCD4)
111 110
112static void s3c2416_irq_lcd_mask(unsigned int irqno) 111static void s3c2416_irq_lcd_mask(struct irq_data *data)
113{ 112{
114 s3c_irqsub_mask(irqno, INTMSK_LCD, SUBMSK_LCD); 113 s3c_irqsub_mask(data->irq, INTMSK_LCD, SUBMSK_LCD);
115} 114}
116 115
117static void s3c2416_irq_lcd_unmask(unsigned int irqno) 116static void s3c2416_irq_lcd_unmask(struct irq_data *data)
118{ 117{
119 s3c_irqsub_unmask(irqno, INTMSK_LCD); 118 s3c_irqsub_unmask(data->irq, INTMSK_LCD);
120} 119}
121 120
122static void s3c2416_irq_lcd_ack(unsigned int irqno) 121static void s3c2416_irq_lcd_ack(struct irq_data *data)
123{ 122{
124 s3c_irqsub_maskack(irqno, INTMSK_LCD, SUBMSK_LCD); 123 s3c_irqsub_maskack(data->irq, INTMSK_LCD, SUBMSK_LCD);
125} 124}
126 125
127static struct irq_chip s3c2416_irq_lcd = { 126static struct irq_chip s3c2416_irq_lcd = {
128 .mask = s3c2416_irq_lcd_mask, 127 .irq_mask = s3c2416_irq_lcd_mask,
129 .unmask = s3c2416_irq_lcd_unmask, 128 .irq_unmask = s3c2416_irq_lcd_unmask,
130 .ack = s3c2416_irq_lcd_ack, 129 .irq_ack = s3c2416_irq_lcd_ack,
131}; 130};
132 131
133
134/* DMA sub interrupts */ 132/* DMA sub interrupts */
135 133
136static void s3c2416_irq_demux_dma(unsigned int irq, struct irq_desc *desc) 134static void s3c2416_irq_demux_dma(unsigned int irq, struct irq_desc *desc)
@@ -142,28 +140,27 @@ static void s3c2416_irq_demux_dma(unsigned int irq, struct irq_desc *desc)
142#define SUBMSK_DMA INTMSK(IRQ_S3C2443_DMA0, IRQ_S3C2443_DMA5) 140#define SUBMSK_DMA INTMSK(IRQ_S3C2443_DMA0, IRQ_S3C2443_DMA5)
143 141
144 142
145static void s3c2416_irq_dma_mask(unsigned int irqno) 143static void s3c2416_irq_dma_mask(struct irq_data *data)
146{ 144{
147 s3c_irqsub_mask(irqno, INTMSK_DMA, SUBMSK_DMA); 145 s3c_irqsub_mask(data->irq, INTMSK_DMA, SUBMSK_DMA);
148} 146}
149 147
150static void s3c2416_irq_dma_unmask(unsigned int irqno) 148static void s3c2416_irq_dma_unmask(struct irq_data *data)
151{ 149{
152 s3c_irqsub_unmask(irqno, INTMSK_DMA); 150 s3c_irqsub_unmask(data->irq, INTMSK_DMA);
153} 151}
154 152
155static void s3c2416_irq_dma_ack(unsigned int irqno) 153static void s3c2416_irq_dma_ack(struct irq_data *data)
156{ 154{
157 s3c_irqsub_maskack(irqno, INTMSK_DMA, SUBMSK_DMA); 155 s3c_irqsub_maskack(data->irq, INTMSK_DMA, SUBMSK_DMA);
158} 156}
159 157
160static struct irq_chip s3c2416_irq_dma = { 158static struct irq_chip s3c2416_irq_dma = {
161 .mask = s3c2416_irq_dma_mask, 159 .irq_mask = s3c2416_irq_dma_mask,
162 .unmask = s3c2416_irq_dma_unmask, 160 .irq_unmask = s3c2416_irq_dma_unmask,
163 .ack = s3c2416_irq_dma_ack, 161 .irq_ack = s3c2416_irq_dma_ack,
164}; 162};
165 163
166
167/* UART3 sub interrupts */ 164/* UART3 sub interrupts */
168 165
169static void s3c2416_irq_demux_uart3(unsigned int irq, struct irq_desc *desc) 166static void s3c2416_irq_demux_uart3(unsigned int irq, struct irq_desc *desc)
@@ -174,28 +171,27 @@ static void s3c2416_irq_demux_uart3(unsigned int irq, struct irq_desc *desc)
174#define INTMSK_UART3 (1UL << (IRQ_S3C2443_UART3 - IRQ_EINT0)) 171#define INTMSK_UART3 (1UL << (IRQ_S3C2443_UART3 - IRQ_EINT0))
175#define SUBMSK_UART3 (0x7 << (IRQ_S3C2443_RX3 - S3C2410_IRQSUB(0))) 172#define SUBMSK_UART3 (0x7 << (IRQ_S3C2443_RX3 - S3C2410_IRQSUB(0)))
176 173
177static void s3c2416_irq_uart3_mask(unsigned int irqno) 174static void s3c2416_irq_uart3_mask(struct irq_data *data)
178{ 175{
179 s3c_irqsub_mask(irqno, INTMSK_UART3, SUBMSK_UART3); 176 s3c_irqsub_mask(data->irq, INTMSK_UART3, SUBMSK_UART3);
180} 177}
181 178
182static void s3c2416_irq_uart3_unmask(unsigned int irqno) 179static void s3c2416_irq_uart3_unmask(struct irq_data *data)
183{ 180{
184 s3c_irqsub_unmask(irqno, INTMSK_UART3); 181 s3c_irqsub_unmask(data->irq, INTMSK_UART3);
185} 182}
186 183
187static void s3c2416_irq_uart3_ack(unsigned int irqno) 184static void s3c2416_irq_uart3_ack(struct irq_data *data)
188{ 185{
189 s3c_irqsub_maskack(irqno, INTMSK_UART3, SUBMSK_UART3); 186 s3c_irqsub_maskack(data->irq, INTMSK_UART3, SUBMSK_UART3);
190} 187}
191 188
192static struct irq_chip s3c2416_irq_uart3 = { 189static struct irq_chip s3c2416_irq_uart3 = {
193 .mask = s3c2416_irq_uart3_mask, 190 .irq_mask = s3c2416_irq_uart3_mask,
194 .unmask = s3c2416_irq_uart3_unmask, 191 .irq_unmask = s3c2416_irq_uart3_unmask,
195 .ack = s3c2416_irq_uart3_ack, 192 .irq_ack = s3c2416_irq_uart3_ack,
196}; 193};
197 194
198
199/* IRQ initialisation code */ 195/* IRQ initialisation code */
200 196
201static int __init s3c2416_add_sub(unsigned int base, 197static int __init s3c2416_add_sub(unsigned int base,