regulator: core: Drop references on supply regulator when unregistering

Signed-off-by: Mark Brown <broonie@linaro.org>
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 288c75a..1510333 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -3740,8 +3740,11 @@
 	if (rdev == NULL)
 		return;
 
-	if (rdev->supply)
+	if (rdev->supply) {
+		while (rdev->use_count--)
+			regulator_disable(rdev->supply);
 		regulator_put(rdev->supply);
+	}
 	mutex_lock(&regulator_list_mutex);
 	debugfs_remove_recursive(rdev->debugfs);
 	flush_work(&rdev->disable_work.work);