aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorHaavard Skinnemoen <hskinnemoen@atmel.com>2008-01-24 10:56:53 -0500
committerHaavard Skinnemoen <hskinnemoen@atmel.com>2008-01-25 02:31:44 -0500
commitd6c49a7a78fc841418bbd58bda504076f80ec51d (patch)
treedb039655c3a4507047e17dc562defb546dbb9f50 /arch
parente4f586f280bbfa05c68f99df2db981356ee30533 (diff)
[AVR32] extint: Set initial irq type to low level
David Brownell pointed out a mismatch in the avr32 extint code: > I noticed a small glitch that's not fixed by this patch: the > initial type is falling edge, but IRQ_TYPE_NONE is mapped to > IRQ_TYPE_LEVEL_LOW. Potentially surprising. Fix it by setting the initial type (and handler) to low level, matching the meaning of IRQ_TYPE_NONE. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/avr32/mach-at32ap/extint.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/avr32/mach-at32ap/extint.c b/arch/avr32/mach-at32ap/extint.c
index 81a4a02f5f42..c36a6d59d6f0 100644
--- a/arch/avr32/mach-at32ap/extint.c
+++ b/arch/avr32/mach-at32ap/extint.c
@@ -226,15 +226,15 @@ static int __init eic_probe(struct platform_device *pdev)
226 pattern = eic_readl(eic, MODE); 226 pattern = eic_readl(eic, MODE);
227 nr_irqs = fls(pattern); 227 nr_irqs = fls(pattern);
228 228
229 /* Trigger on falling edge unless overridden by driver */ 229 /* Trigger on low level unless overridden by driver */
230 eic_writel(eic, MODE, 0UL);
231 eic_writel(eic, EDGE, 0UL); 230 eic_writel(eic, EDGE, 0UL);
231 eic_writel(eic, LEVEL, 0UL);
232 232
233 eic->chip = &eic_chip; 233 eic->chip = &eic_chip;
234 234
235 for (i = 0; i < nr_irqs; i++) { 235 for (i = 0; i < nr_irqs; i++) {
236 set_irq_chip_and_handler(eic->first_irq + i, &eic_chip, 236 set_irq_chip_and_handler(eic->first_irq + i, &eic_chip,
237 handle_edge_irq); 237 handle_level_irq);
238 set_irq_chip_data(eic->first_irq + i, eic); 238 set_irq_chip_data(eic->first_irq + i, eic);
239 } 239 }
240 240