From ddf26a46ab2d33dac1877a1e4ef0b51e519db187 Mon Sep 17 00:00:00 2001 From: Felipe Balbi Date: Wed, 22 Feb 2012 14:53:59 +0200 Subject: [PATCH] --- yaml --- r: 296895 b: refs/heads/master c: 5a903090e7aa561901b7f052eb744b480d6126d4 h: refs/heads/master i: 296893: fb99ddbdc990e913fb0668deda434134c18e7463 296891: e5891f348e2592ff4beab5f9baf9d0c220a73b5a 296887: 8294d53b87f48b87b74d626fb2132c0818dca9e7 296879: 7a46cdf441e538e3e216d3cd561a2b1fa0d00e86 296863: d5fae3cebcf07df906e6802f6bfcef183b09d70f 296831: 9a955b4fdb7745ff9787053b875528e5dcdb497d v: v3 --- [refs] | 2 +- trunk/drivers/mfd/twl4030-irq.c | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index a9fc33753a6e..36b1fc248076 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f01b1f90bf46ddaf2a68215a9489364c974e5689 +refs/heads/master: 5a903090e7aa561901b7f052eb744b480d6126d4 diff --git a/trunk/drivers/mfd/twl4030-irq.c b/trunk/drivers/mfd/twl4030-irq.c index d6f3a5e9f7bd..3b748b71c0f3 100644 --- a/trunk/drivers/mfd/twl4030-irq.c +++ b/trunk/drivers/mfd/twl4030-irq.c @@ -293,7 +293,6 @@ static unsigned twl4030_irq_base; */ static irqreturn_t handle_twl4030_pih(int irq, void *devid) { - int module_irq; irqreturn_t ret; u8 pih_isr; @@ -304,12 +303,13 @@ static irqreturn_t handle_twl4030_pih(int irq, void *devid) return IRQ_NONE; } - /* these handlers deal with the relevant SIH irq status */ - for (module_irq = twl4030_irq_base; - pih_isr; - pih_isr >>= 1, module_irq++) { - if (pih_isr & 0x1) - handle_nested_irq(module_irq); + while (pih_isr) { + unsigned long pending = __ffs(pih_isr); + unsigned int irq; + + pih_isr &= ~BIT(pending); + irq = pending + twl4030_irq_base; + handle_nested_irq(irq); } return IRQ_HANDLED;