From: Grond Date: Tue, 20 Dec 2016 18:59:30 +0000 (-0800) Subject: twl4030_charger: remember to clean up USB regulator X-Git-Tag: sz_176~7 X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=485409d4ee7959bcc682e357691c3f477beddd10;p=pandora-kernel.git twl4030_charger: remember to clean up USB regulator This was causing issues when the driver was modularized. Removing and re-inserting the driver with modprobe would cause noisy breakage because the regulator wasn't released when the driver exited. --- diff --git a/drivers/power/twl4030_charger.c b/drivers/power/twl4030_charger.c index 9488b37cbde8..575407a03024 100644 --- a/drivers/power/twl4030_charger.c +++ b/drivers/power/twl4030_charger.c @@ -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);