Re: [PATCH v3 13/15] mmc: host: omap_hsmmc: use regulator_is_enabled to find pbias status

From: Ulf Hansson
Date: Thu Aug 27 2015 - 08:45:54 EST


On 27 August 2015 at 11:14, Kishon Vijay Abraham I <kishon@xxxxxx> wrote:
> Use regulator_is_enabled of pbias regulator to find pbias regulator
> status instead of maintaining a custom bookkeeping
> pbias_enabled variable.

Doesn't this cause a problem for the scenario when the initial state
of the regulator is enabled?

Both in the sense that you will increase the enable count for it
(potentially it may then become disabled when you need it enabled) but
also from a enable/disable imbalance point of view.

Kind regards
Uffe

>
> Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
> Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
> ---
> drivers/mmc/host/omap_hsmmc.c | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
> index 5a5946a..4cd7a58 100644
> --- a/drivers/mmc/host/omap_hsmmc.c
> +++ b/drivers/mmc/host/omap_hsmmc.c
> @@ -182,7 +182,6 @@ 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;
> @@ -330,22 +329,20 @@ static int omap_hsmmc_set_pbias(struct omap_hsmmc_host *host, bool power_on,
> return ret;
> }
>
> - if (host->pbias_enabled == 0) {
> + if (!regulator_is_enabled(host->pbias)) {
> ret = regulator_enable(host->pbias);
> if (ret) {
> dev_err(host->dev, "pbias reg enable fail\n");
> return ret;
> }
> - host->pbias_enabled = 1;
> }
> } else {
> - if (host->pbias_enabled == 1) {
> + if (regulator_is_enabled(host->pbias)) {
> ret = regulator_disable(host->pbias);
> if (ret) {
> dev_err(host->dev, "pbias reg disable fail\n");
> return ret;
> }
> - host->pbias_enabled = 0;
> }
> }
>
> @@ -2081,7 +2078,6 @@ 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);
> --
> 1.7.9.5
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/