aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2011-12-27 12:20:10 -0500
committerSamuel Ortiz <sameo@linux.intel.com>2012-01-08 18:37:47 -0500
commit953c7d025d97916e56fd6f1bd347e1c19fd7d5f5 (patch)
tree770134df40ea088076747b65283c84da6586aebe /drivers/mfd
parente3380333b8fdaad07d53953c1831b90d9cc23821 (diff)
mfd: Still check other interrupts if we get a wm831x touchscreen IRQ
It is possible that we will see another interrupt triggering at the same time as the touchscreen interrupts so it's still worth checking other possible sources. Almost all of the win from the fast path comes from only needing to read the primary register and saving the I/O costs. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers/mfd')
-rw-r--r--drivers/mfd/wm831x-irq.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/mfd/wm831x-irq.c b/drivers/mfd/wm831x-irq.c
index 7be5f09f4fcf..bec4d0539160 100644
--- a/drivers/mfd/wm831x-irq.c
+++ b/drivers/mfd/wm831x-irq.c
@@ -472,8 +472,7 @@ static irqreturn_t wm831x_irq_thread(int irq, void *data)
472 handle_nested_irq(wm831x->irq_base + WM831X_IRQ_TCHPD); 472 handle_nested_irq(wm831x->irq_base + WM831X_IRQ_TCHPD);
473 if (primary & WM831X_TCHDATA_INT) 473 if (primary & WM831X_TCHDATA_INT)
474 handle_nested_irq(wm831x->irq_base + WM831X_IRQ_TCHDATA); 474 handle_nested_irq(wm831x->irq_base + WM831X_IRQ_TCHDATA);
475 if (primary & (WM831X_TCHDATA_EINT | WM831X_TCHPD_EINT)) 475 primary &= ~(WM831X_TCHDATA_EINT | WM831X_TCHPD_EINT);
476 goto out;
477 476
478 for (i = 0; i < ARRAY_SIZE(wm831x_irqs); i++) { 477 for (i = 0; i < ARRAY_SIZE(wm831x_irqs); i++) {
479 int offset = wm831x_irqs[i].reg - 1; 478 int offset = wm831x_irqs[i].reg - 1;