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: Roger Quadros <ext-roger.quadros@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
dfc27b3449
commit
22833044fb
1 changed files with 6 additions and 0 deletions
|
@ -119,6 +119,7 @@ static int twl_mmc_late_init(struct device *dev)
|
||||||
if (i != 0)
|
if (i != 0)
|
||||||
break;
|
break;
|
||||||
ret = PTR_ERR(reg);
|
ret = PTR_ERR(reg);
|
||||||
|
hsmmc[i].vcc = NULL;
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
hsmmc[i].vcc = reg;
|
hsmmc[i].vcc = reg;
|
||||||
|
@ -165,8 +166,13 @@ done:
|
||||||
static void twl_mmc_cleanup(struct device *dev)
|
static void twl_mmc_cleanup(struct device *dev)
|
||||||
{
|
{
|
||||||
struct omap_mmc_platform_data *mmc = dev->platform_data;
|
struct omap_mmc_platform_data *mmc = dev->platform_data;
|
||||||
|
int i;
|
||||||
|
|
||||||
gpio_free(mmc->slots[0].switch_pin);
|
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
|
#ifdef CONFIG_PM
|
||||||
|
|
Loading…
Add table
Reference in a new issue