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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux