From c0eaf68769197e2b1de4170b1c20d568fb5a0dfb Mon Sep 17 00:00:00 2001 From: Graeme Gregory Date: Fri, 22 Jun 2012 13:36:19 +0100 Subject: [PATCH] --- yaml --- r: 319721 b: refs/heads/master c: 54210c97c8bfff67a4c5ec09ff797543bf291d6b h: refs/heads/master i: 319719: 81062a01566f29efd462804a8bcc274c912a3207 v: v3 --- [refs] | 2 +- trunk/drivers/mfd/palmas.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 185f6df6ad5b..58711101683f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 56dbd61f297d8d645856f604536bcd856ab9060a +refs/heads/master: 54210c97c8bfff67a4c5ec09ff797543bf291d6b diff --git a/trunk/drivers/mfd/palmas.c b/trunk/drivers/mfd/palmas.c index 98fdcdbbd610..c4a69f193a1d 100644 --- a/trunk/drivers/mfd/palmas.c +++ b/trunk/drivers/mfd/palmas.c @@ -356,7 +356,14 @@ static int __devinit palmas_i2c_probe(struct i2c_client *i2c, } } - ret = regmap_add_irq_chip(palmas->regmap[1], palmas->irq, + /* Change IRQ into clear on read mode for efficiency */ + slave = PALMAS_BASE_TO_SLAVE(PALMAS_INTERRUPT_BASE); + addr = PALMAS_BASE_TO_REG(PALMAS_INTERRUPT_BASE, PALMAS_INT_CTRL); + reg = PALMAS_INT_CTRL_INT_CLEAR; + + regmap_write(palmas->regmap[slave], addr, reg); + + ret = regmap_add_irq_chip(palmas->regmap[slave], palmas->irq, IRQF_ONESHOT | IRQF_TRIGGER_LOW, -1, &palmas_irq_chip, &palmas->irq_data); if (ret < 0)