[PATCH 1/2] Revert "mmc: host: omap_hsmmc: use regulator_is_enabled to find pbias status"
Ulf Hansson
ulf.hansson at linaro.org
Wed Oct 7 07:06:21 PDT 2015
On 7 October 2015 at 15:22, Tony Lindgren <tony at atomide.com> wrote:
> This reverts commit c55d7a0553643a7e8f120688b82b594471084d3c.
>
> 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: 7d607f917008 ("mmc: host: omap_hsmmc: use
> devm_regulator_get_optional() for vmmc")
> Cc: Felipe Balbi <balbi at ti.com>
> Cc: Kishon Vijay Abraham I <kishon at ti.com>
> Cc: Nishanth Menon <nm at ti.com>
> Cc: Russell King <rmk+kernel at arm.linux.org.uk>
> Signed-off-by: Tony Lindgren <tony at atomide.com>
Thanks, applied for fixes!
Kind regards
Uffe
> ---
> drivers/mmc/host/omap_hsmmc.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
> index 781e4db3..ae3a2b9 100644
> --- a/drivers/mmc/host/omap_hsmmc.c
> +++ b/drivers/mmc/host/omap_hsmmc.c
> @@ -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);
> --
> 2.1.4
>
More information about the linux-arm-kernel
mailing list