瀏覽代碼

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>
Mark Brown 12 年之前
父節點
當前提交
1d017b6b36
共有 1 個文件被更改,包括 5 次插入0 次删除
  1. 5 0
      drivers/mfd/arizona-core.c

+ 5 - 0
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);
 	arizona_free_irq(arizona, ARIZONA_IRQ_CLKGEN_ERR, arizona);
 	pm_runtime_disable(arizona->dev);
 	pm_runtime_disable(arizona->dev);
 	arizona_irq_exit(arizona);
 	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;
 	return 0;
 }
 }
 EXPORT_SYMBOL_GPL(arizona_dev_exit);
 EXPORT_SYMBOL_GPL(arizona_dev_exit);