ARM: 6101/1: nomadik-gpio: don't enable in set_type
authorRabin Vincent <rabin.vincent@stericsson.com>
Thu, 6 May 2010 09:43:55 +0000 (10:43 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 6 May 2010 19:17:19 +0000 (20:17 +0100)
commit7a852d8060e1bb3a5e621caaebea86c43cf4a62d
tree3c3ea7aa4c69bcc382d09b2cbc6e9b99189c24d6
parent040e5ecddaa72f1f982b83cb205509bc9ce7f91e
ARM: 6101/1: nomadik-gpio: don't enable in set_type

On this peripheral, setting the trigger type enables the interrupt, and
the current set_type() implementation unconditionally enables the
interrupt, even if it is called when the interrupt is disabled.  Fix
set_type() to:

 - if the interrupt is disabled, defer the actual trigger setting to
   when it is unmasked

 - if the interrupt is enabled, change the type immediately by clearing
   the old type and then re-enabling with the new type.

Acked-by: Alessandro Rubini <rubini@unipv.it>
Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/plat-nomadik/gpio.c