• Valentin Rothberg's avatar
    ab8500_fg.c: only request threaded IRQs when necessary · 02232be7
    Valentin Rothberg authored
    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: default avatarValentin Rothberg <Valentin.Rothberg@lip6.fr>
    Signed-off-by: default avatarSebastian Reichel <sre@kernel.org>
    02232be7
ab8500_fg.c 83.6 KB