summaryrefslogtreecommitdiffstats
path: root/drivers/regulator/lp8755.c
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@ingics.com>2015-05-31 14:06:46 +0800
committerMark Brown <broonie@kernel.org>2015-06-02 15:35:17 +0100
commit840499aa001313bac50eb43690e5c991b3999217 (patch)
treeb03940f3e6486014d69e1f213fea9e2456cc290a /drivers/regulator/lp8755.c
parentb787f68c36d49bb1d9236f403813641efa74a031 (diff)
downloadlinux-840499aa001313bac50eb43690e5c991b3999217.tar.gz
linux-840499aa001313bac50eb43690e5c991b3999217.tar.bz2
linux-840499aa001313bac50eb43690e5c991b3999217.zip
regulator: lp8755: Convert to devm_request_threaded_irq
Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/regulator/lp8755.c')
-rw-r--r--drivers/regulator/lp8755.c23
1 files changed, 8 insertions, 15 deletions
diff --git a/drivers/regulator/lp8755.c b/drivers/regulator/lp8755.c
index 4a415d4ee463..d6773da925ba 100644
--- a/drivers/regulator/lp8755.c
+++ b/drivers/regulator/lp8755.c
@@ -419,20 +419,16 @@ static int lp8755_int_config(struct lp8755_chip *pchip)
}
ret = lp8755_read(pchip, 0x0F, &regval);
- if (ret < 0)
- goto err_i2c;
- pchip->irqmask = regval;
- ret = request_threaded_irq(pchip->irq, NULL, lp8755_irq_handler,
- IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
- "lp8755-irq", pchip);
- if (ret)
+ if (ret < 0) {
+ dev_err(pchip->dev, "i2c acceess error %s\n", __func__);
return ret;
+ }
- return ret;
-
-err_i2c:
- dev_err(pchip->dev, "i2c acceess error %s\n", __func__);
- return ret;
+ pchip->irqmask = regval;
+ return devm_request_threaded_irq(pchip->dev, pchip->irq, NULL,
+ lp8755_irq_handler,
+ IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
+ "lp8755-irq", pchip);
}
static const struct regmap_config lp8755_regmap = {
@@ -514,9 +510,6 @@ static int lp8755_remove(struct i2c_client *client)
for (icnt = 0; icnt < LP8755_BUCK_MAX; icnt++)
lp8755_write(pchip, icnt, 0x00);
- if (pchip->irq != 0)
- free_irq(pchip->irq, pchip);
-
return 0;
}