diff options
Diffstat (limited to 'arch/arm/mach-lh7a40x/arch-lpd7a40x.c')
-rw-r--r-- | arch/arm/mach-lh7a40x/arch-lpd7a40x.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/arch/arm/mach-lh7a40x/arch-lpd7a40x.c b/arch/arm/mach-lh7a40x/arch-lpd7a40x.c index 7315a569aea..e735546181a 100644 --- a/arch/arm/mach-lh7a40x/arch-lpd7a40x.c +++ b/arch/arm/mach-lh7a40x/arch-lpd7a40x.c | |||
@@ -159,7 +159,7 @@ static void __init lpd7a40x_init (void) | |||
159 | #endif | 159 | #endif |
160 | } | 160 | } |
161 | 161 | ||
162 | static void lh7a40x_ack_cpld_irq (u32 irq) | 162 | static void lh7a40x_ack_cpld_irq(struct irq_data *d) |
163 | { | 163 | { |
164 | /* CPLD doesn't have ack capability, but some devices may */ | 164 | /* CPLD doesn't have ack capability, but some devices may */ |
165 | 165 | ||
@@ -167,14 +167,14 @@ static void lh7a40x_ack_cpld_irq (u32 irq) | |||
167 | /* The touch control *must* mask the interrupt because the | 167 | /* The touch control *must* mask the interrupt because the |
168 | * interrupt bit is read by the driver to determine if the pen | 168 | * interrupt bit is read by the driver to determine if the pen |
169 | * is still down. */ | 169 | * is still down. */ |
170 | if (irq == IRQ_TOUCH) | 170 | if (d->irq == IRQ_TOUCH) |
171 | CPLD_INTERRUPTS |= CPLD_INTMASK_TOUCH; | 171 | CPLD_INTERRUPTS |= CPLD_INTMASK_TOUCH; |
172 | #endif | 172 | #endif |
173 | } | 173 | } |
174 | 174 | ||
175 | static void lh7a40x_mask_cpld_irq (u32 irq) | 175 | static void lh7a40x_mask_cpld_irq(struct irq_data *d) |
176 | { | 176 | { |
177 | switch (irq) { | 177 | switch (d->irq) { |
178 | case IRQ_LPD7A40X_ETH_INT: | 178 | case IRQ_LPD7A40X_ETH_INT: |
179 | CPLD_INTERRUPTS |= CPLD_INTMASK_ETHERNET; | 179 | CPLD_INTERRUPTS |= CPLD_INTMASK_ETHERNET; |
180 | break; | 180 | break; |
@@ -186,9 +186,9 @@ static void lh7a40x_mask_cpld_irq (u32 irq) | |||
186 | } | 186 | } |
187 | } | 187 | } |
188 | 188 | ||
189 | static void lh7a40x_unmask_cpld_irq (u32 irq) | 189 | static void lh7a40x_unmask_cpld_irq(struct irq_data *d) |
190 | { | 190 | { |
191 | switch (irq) { | 191 | switch (d->irq) { |
192 | case IRQ_LPD7A40X_ETH_INT: | 192 | case IRQ_LPD7A40X_ETH_INT: |
193 | CPLD_INTERRUPTS &= ~CPLD_INTMASK_ETHERNET; | 193 | CPLD_INTERRUPTS &= ~CPLD_INTMASK_ETHERNET; |
194 | break; | 194 | break; |
@@ -201,17 +201,17 @@ static void lh7a40x_unmask_cpld_irq (u32 irq) | |||
201 | } | 201 | } |
202 | 202 | ||
203 | static struct irq_chip lpd7a40x_cpld_chip = { | 203 | static struct irq_chip lpd7a40x_cpld_chip = { |
204 | .name = "CPLD", | 204 | .name = "CPLD", |
205 | .ack = lh7a40x_ack_cpld_irq, | 205 | .irq_ack = lh7a40x_ack_cpld_irq, |
206 | .mask = lh7a40x_mask_cpld_irq, | 206 | .irq_mask = lh7a40x_mask_cpld_irq, |
207 | .unmask = lh7a40x_unmask_cpld_irq, | 207 | .irq_unmask = lh7a40x_unmask_cpld_irq, |
208 | }; | 208 | }; |
209 | 209 | ||
210 | static void lpd7a40x_cpld_handler (unsigned int irq, struct irq_desc *desc) | 210 | static void lpd7a40x_cpld_handler (unsigned int irq, struct irq_desc *desc) |
211 | { | 211 | { |
212 | unsigned int mask = CPLD_INTERRUPTS; | 212 | unsigned int mask = CPLD_INTERRUPTS; |
213 | 213 | ||
214 | desc->chip->ack (irq); | 214 | desc->irq_data.chip->irq_ack(&desc->irq_data); |
215 | 215 | ||
216 | if ((mask & (1<<0)) == 0) /* WLAN */ | 216 | if ((mask & (1<<0)) == 0) /* WLAN */ |
217 | generic_handle_irq(IRQ_LPD7A40X_ETH_INT); | 217 | generic_handle_irq(IRQ_LPD7A40X_ETH_INT); |
@@ -221,7 +221,8 @@ static void lpd7a40x_cpld_handler (unsigned int irq, struct irq_desc *desc) | |||
221 | generic_handle_irq(IRQ_TOUCH); | 221 | generic_handle_irq(IRQ_TOUCH); |
222 | #endif | 222 | #endif |
223 | 223 | ||
224 | desc->chip->unmask (irq); /* Level-triggered need this */ | 224 | /* Level-triggered need this */ |
225 | desc->irq_data.chip->irq_unmask(&desc->irq_data); | ||
225 | } | 226 | } |
226 | 227 | ||
227 | 228 | ||