Messages in this thread | | | Date | Fri, 17 Apr 2015 11:12:13 +0200 | From | Sascha Hauer <> | Subject | Re: [PATCH v2 2/5] mmc: mediatek: Add Mediatek MMC driver |
| |
Ulf,
On Tue, Mar 31, 2015 at 02:23:06PM +0200, Ulf Hansson wrote: > On 17 March 2015 at 04:13, Chaotian Jing <chaotian.jing@mediatek.com> wrote: > > + > > + msdc_set_buswidth(host, ios->bus_width); > > + > > + /* Suspend/Resume will do power off/on */ > > + switch (ios->power_mode) { > > + case MMC_POWER_UP: > > + msdc_init_hw(host); > > + if (!IS_ERR(mmc->supply.vmmc)) { > > + ret = mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, > > + ios->vdd); > > + if (ret) { > > + dev_err(host->dev, "Failed to set vmmc power!\n"); > > + return; > > + } > > + } > > + break; > > + case MMC_POWER_ON: > > + if (!IS_ERR(mmc->supply.vqmmc)) { > > + ret = regulator_enable(mmc->supply.vqmmc); > > The calls to regulator_enable|disable() for the vqmmc will not be > balanced properly here. You need a local cache variable like > "is_enabled" to keep track of this.
Shouldn't the MMC core provide balanced hooks for this? What about MMC_POWER_UP, can this be used for enabling regulators?
Sascha
-- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
| |