irqchip: omap-intc: Improve IRQ handler
authorFelipe Balbi <balbi@ti.com>
Fri, 2 Jan 2015 22:18:54 +0000 (16:18 -0600)
committerSasha Levin <sasha.levin@oracle.com>
Tue, 12 Apr 2016 13:07:22 +0000 (09:07 -0400)
commit290e5305a83aa533e2fc20f435e3df9731c02b62
tree616c96c1370aee5802e8b4d84ad20cc0fd9e8646
parent4d7a10c5e89fae20d451032bbbcc051241db8bbb
irqchip: omap-intc: Improve IRQ handler

[ Upstream commit 6ed3464897cc825a75218653c710d673282dfcf8 ]

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>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
drivers/irqchip/irq-omap-intc.c