Revert "mmc: host: omap_hsmmc: use regulator_is_enabled to find pbias status"
This reverts commitc55d7a0553
. Without reverting this commit we get "unbalanced disables for pbias_mmc_omap4" errors on omap4430. It seems that 4430 and 4460 behave in a different way for the PBIAS regulator registers and until that has been debugged further we cannot rely on the regulator status registers in hardare on 4430. Fixes:7d607f9170
("mmc: host: omap_hsmmc: use devm_regulator_get_optional() for vmmc") Cc: Felipe Balbi <balbi@ti.com> Cc: Kishon Vijay Abraham I <kishon@ti.com> Cc: Nishanth Menon <nm@ti.com> Cc: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Tony Lindgren <tony@atomide.com> Tested-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
Родитель
049e6dde7e
Коммит
bb2726b52f
|
@ -182,6 +182,7 @@ struct omap_hsmmc_host {
|
|||
struct clk *fclk;
|
||||
struct clk *dbclk;
|
||||
struct regulator *pbias;
|
||||
bool pbias_enabled;
|
||||
void __iomem *base;
|
||||
int vqmmc_enabled;
|
||||
resource_size_t mapbase;
|
||||
|
@ -328,20 +329,22 @@ static int omap_hsmmc_set_pbias(struct omap_hsmmc_host *host, bool power_on,
|
|||
return ret;
|
||||
}
|
||||
|
||||
if (!regulator_is_enabled(host->pbias)) {
|
||||
if (host->pbias_enabled == 0) {
|
||||
ret = regulator_enable(host->pbias);
|
||||
if (ret) {
|
||||
dev_err(host->dev, "pbias reg enable fail\n");
|
||||
return ret;
|
||||
}
|
||||
host->pbias_enabled = 1;
|
||||
}
|
||||
} else {
|
||||
if (regulator_is_enabled(host->pbias)) {
|
||||
if (host->pbias_enabled == 1) {
|
||||
ret = regulator_disable(host->pbias);
|
||||
if (ret) {
|
||||
dev_err(host->dev, "pbias reg disable fail\n");
|
||||
return ret;
|
||||
}
|
||||
host->pbias_enabled = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2053,6 +2056,7 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
|
|||
host->base = base + pdata->reg_offset;
|
||||
host->power_mode = MMC_POWER_OFF;
|
||||
host->next_data.cookie = 1;
|
||||
host->pbias_enabled = 0;
|
||||
host->vqmmc_enabled = 0;
|
||||
|
||||
ret = omap_hsmmc_gpio_init(mmc, host, pdata);
|
||||
|
|
Загрузка…
Ссылка в новой задаче