summaryrefslogtreecommitdiffstats
path: root/drivers/mfd/arizona-core.c
diff options
context:
space:
mode:
authorMark Brown2013-03-26 13:16:26 +0100
committerMark Brown2013-05-17 17:47:28 +0200
commit1d017b6b36675574ec8a6f7dbcd3fd3bec2dc03f (patch)
tree18fbb337456d598e53ccc5f72d4b6a4138a76856 /drivers/mfd/arizona-core.c
parentmfd: wm5102: Manually apply register patch (diff)
downloadkernel-qcow2-linux-1d017b6b36675574ec8a6f7dbcd3fd3bec2dc03f.tar.gz
kernel-qcow2-linux-1d017b6b36675574ec8a6f7dbcd3fd3bec2dc03f.tar.xz
kernel-qcow2-linux-1d017b6b36675574ec8a6f7dbcd3fd3bec2dc03f.zip
mfd: arizona: Add missing cleanup on remove
We'd forgotten to disable /RESET or the regulators. Practically speaking this code is unlikely to ever be run. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'drivers/mfd/arizona-core.c')
-rw-r--r--drivers/mfd/arizona-core.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
index 25bfd1ec1a65..8002e2d2f6fe 100644
--- a/drivers/mfd/arizona-core.c
+++ b/drivers/mfd/arizona-core.c
@@ -839,6 +839,11 @@ int arizona_dev_exit(struct arizona *arizona)
arizona_free_irq(arizona, ARIZONA_IRQ_CLKGEN_ERR, arizona);
pm_runtime_disable(arizona->dev);
arizona_irq_exit(arizona);
+ if (arizona->pdata.reset)
+ gpio_set_value_cansleep(arizona->pdata.reset, 0);
+ regulator_disable(arizona->dcvdd);
+ regulator_bulk_disable(ARRAY_SIZE(arizona->core_supplies),
+ arizona->core_supplies);
return 0;
}
EXPORT_SYMBOL_GPL(arizona_dev_exit);