twl4030_charger: remember to clean up USB regulator
[pandora-kernel.git] / drivers / power / twl4030_charger.c
index 9488b37..575407a 100644 (file)
@@ -895,6 +895,13 @@ fail_chg_irq:
        power_supply_unregister(&bci->usb);
 fail_register_usb:
        power_supply_unregister(&bci->ac);
+
+       if (bci->usb_reg) {
+               if (bci->usb_enabled)
+                       regulator_disable(bci->usb_reg);
+               regulator_put(bci->usb_reg);
+       }
+
 fail_register_ac:
        led_trigger_unregister_simple(bci->charging_any_trig);
        platform_set_drvdata(pdev, NULL);
@@ -927,6 +934,13 @@ static int __exit twl4030_bci_remove(struct platform_device *pdev)
        free_irq(bci->irq_chg, bci);
        power_supply_unregister(&bci->usb);
        power_supply_unregister(&bci->ac);
+
+       if (bci->usb_reg) {
+               if (bci->usb_enabled)
+                       regulator_disable(bci->usb_reg);
+               regulator_put(bci->usb_reg);
+       }
+
        led_trigger_unregister_simple(bci->charging_any_trig);
        platform_set_drvdata(pdev, NULL);
        kfree(bci);