gpio/omap: optimise interrupt service routine
authorJon Hunter <jon-hunter@ti.com>
Thu, 4 Apr 2013 20:16:14 +0000 (15:16 -0500)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 10 Apr 2013 21:41:16 +0000 (23:41 +0200)
commit3513cdeccc647d41c4a9ff923af17deaaac04a66
treede59b9d16ef472bb6a1d12fae6c8c67489172667
parent60b18b9aa4daa616a8b360feb35d1bfe4d606019
gpio/omap: optimise interrupt service routine

The OMAP GPIO interrupt service routine is checking each bit in the
GPIO interrupt status register to see which bits are set. It is not
efficient to check every bit especially if only a few bits are set.
Therefore, instead of checking every bit use the __ffs() function,
which returns the location of the first set bit, to find all the set
bits.

This optimisation was suggested-by and developed in collaboration
with Felipe Balbi.

Signed-off-by: Jon Hunter <jon-hunter@ti.com>
Reviewed-by: Felipe Balbi <balbi@ti.com>
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Reviewed-by: Kevin Hilman <khilman@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-omap.c