From: Haavard Skinnemoen Date: Thu, 24 Jan 2008 15:56:53 +0000 (+0100) Subject: [AVR32] extint: Set initial irq type to low level X-Git-Tag: v2.6.25-rc1~1240^2 X-Git-Url: http://www.pilppa.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=d6c49a7a78fc841418bbd58bda504076f80ec51d;p=linux-2.6-omap-h63xx.git [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 --- diff --git a/arch/avr32/mach-at32ap/extint.c b/arch/avr32/mach-at32ap/extint.c index 81a4a02f5f4..c36a6d59d6f 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) pattern = eic_readl(eic, MODE); nr_irqs = fls(pattern); - /* Trigger on falling edge unless overridden by driver */ - eic_writel(eic, MODE, 0UL); + /* Trigger on low level unless overridden by driver */ eic_writel(eic, EDGE, 0UL); + eic_writel(eic, LEVEL, 0UL); eic->chip = &eic_chip; for (i = 0; i < nr_irqs; i++) { set_irq_chip_and_handler(eic->first_irq + i, &eic_chip, - handle_edge_irq); + handle_level_irq); set_irq_chip_data(eic->first_irq + i, eic); }