diff options
| author | Haavard Skinnemoen <hskinnemoen@atmel.com> | 2008-01-24 10:56:53 -0500 |
|---|---|---|
| committer | Haavard Skinnemoen <hskinnemoen@atmel.com> | 2008-01-25 02:31:44 -0500 |
| commit | d6c49a7a78fc841418bbd58bda504076f80ec51d (patch) | |
| tree | db039655c3a4507047e17dc562defb546dbb9f50 | |
| parent | e4f586f280bbfa05c68f99df2db981356ee30533 (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>
| -rw-r--r-- | arch/avr32/mach-at32ap/extint.c | 6 |
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 | ||
