ab8500_fg.c: only request threaded IRQs when necessary
authorValentin Rothberg <Valentin.Rothberg@lip6.fr>
Mon, 16 Feb 2015 16:32:48 +0000 (17:32 +0100)
committerSebastian Reichel <sre@kernel.org>
Sat, 7 Mar 2015 19:32:22 +0000 (20:32 +0100)
commit02232be7a2bf6e2dd5e4a6c3a81470a09ecc7fdd
treeed27aec75fa383838a7451eea1a57fa3e3c7ff7f
parent5a5bf49088f4c92f36786a2e4c20e17f715f0827
ab8500_fg.c: only request threaded IRQs when necessary

All 5 IRQ handlers of the driver are requested as threaded interrupt
handlers.  However, only 1 handler can block.  The remaining 4 handlers
defer the actual handling to a workqueue.  Hence, 4 of 5 IRQ handlers
have a considerable overhead, since they are executed in a kernel thread
to schedule another kernel thread (workqueue).

This change splits up the 5 interrupt handlers into top halves (_th) and
bottom halves (_bh) and resolves the aforementioned overhead by only
requesting threaded interrupts (i.e., bottom halves) when necessary.

Signed-off-by: Valentin Rothberg <Valentin.Rothberg@lip6.fr>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
drivers/power/ab8500_fg.c