Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22833044 authored by Roger Quadros's avatar Roger Quadros Committed by Tony Lindgren
Browse files

OMAP2/3: mmc-twl4030: Free up MMC regulators while cleaning up



twl_mmc_cleanup() must free up the regulators that were
allocated by twl_mmc_late_init().
This eliminates the below error when 'omap_hsmmc' module is
repeatedly loaded and unloaded.

"sysfs: cannot create duplicate filename '/devices/platform
 /mmci-omap-hs.0/microamps_requested_vmmc'"

Signed-off-by: default avatarRoger Quadros <ext-roger.quadros@nokia.com>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent dfc27b34
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -119,6 +119,7 @@ static int twl_mmc_late_init(struct device *dev)
				if (i != 0)
					break;
				ret = PTR_ERR(reg);
				hsmmc[i].vcc = NULL;
				goto err;
			}
			hsmmc[i].vcc = reg;
@@ -165,8 +166,13 @@ static int twl_mmc_late_init(struct device *dev)
static void twl_mmc_cleanup(struct device *dev)
{
	struct omap_mmc_platform_data *mmc = dev->platform_data;
	int i;

	gpio_free(mmc->slots[0].switch_pin);
	for(i = 0; i < ARRAY_SIZE(hsmmc); i++) {
		regulator_put(hsmmc[i].vcc);
		regulator_put(hsmmc[i].vcc_aux);
	}
}

#ifdef CONFIG_PM