irqchip: omap-intc: Improve IRQ handler
authorFelipe Balbi <balbi@ti.com>
Fri, 2 Jan 2015 22:18:54 +0000 (16:18 -0600)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 22 Jul 2015 16:37:42 +0000 (18:37 +0200)
commit6ed3464897cc825a75218653c710d673282dfcf8
tree1d40b327048a981db84bc7a41862cbd75cb5ba86
parente10fc03c4f89e5191f0ad2a3885d476f498bf131
irqchip: omap-intc: Improve IRQ handler

As it turns out the current IRQ number will *always* be available from
SIR register which renders the reads of PENDING registers as plain
unnecessary overhead.

In order to catch any situation where SIR reads as zero, we're adding
a WARN() to turn it into a very verbose error and users actually
report it.

With this patch average running time of omap_intc_handle_irq() reduced
from about 28.5us to 19.8us as measured by the kernel function
profiler.

Tested with BeagleBoneBlack Rev A5C.

Tested-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Cc: Linux ARM Kernel Mailing List <linux-arm-kernel@lists.infradead.org>
Link: http://lkml.kernel.org/r/20150720204910.GH5394@saruman.tx.rr.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
drivers/irqchip/irq-omap-intc.c