2013-08-07 03:29:06

by dbasehore .

[permalink] [raw]
Subject: [PATCH] mmc: dw_mmc: Don't disable vmmc if keeping power in suspend

If we keep power for suspend on a host for dw_mmc, don't disable vmmc-supply
regulator when suspending the host.

Signed-off-by: Derek Basehore <[email protected]>
Reviewed-by: Doug Anderson <[email protected]>
---
drivers/mmc/host/dw_mmc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index ee5f167..bf82d7c 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -2474,7 +2474,7 @@ int dw_mci_suspend(struct dw_mci *host)
}
}

- if (host->vmmc)
+ if (host->vmmc && !(host->pdata->pm_caps & MMC_PM_KEEP_POWER))
regulator_disable(host->vmmc);

return 0;
@@ -2485,7 +2485,7 @@ int dw_mci_resume(struct dw_mci *host)
{
int i, ret;

- if (host->vmmc) {
+ if (host->vmmc && !(host->pdata->pm_caps & MMC_PM_KEEP_POWER)) {
ret = regulator_enable(host->vmmc);
if (ret) {
dev_err(host->dev,
--
1.8.3


2013-08-12 10:33:43

by Seungwon Jeon

[permalink] [raw]
Subject: RE: [PATCH] mmc: dw_mmc: Don't disable vmmc if keeping power in suspend

On Wed, August 07, 2013, Derek Basehore
> If we keep power for suspend on a host for dw_mmc, don't disable vmmc-supply
> regulator when suspending the host.

I have a trivial comment.
It would be better to add some macro for checking MMC_PM_KEEP_POWER.
And I just wonder how the problem is silent. Origin code has stood up somewhat long.
Did you see?

Acked-by: Seungwon Jeon <[email protected]>

Thanks,
Seungwon Jeon

>
> Signed-off-by: Derek Basehore <[email protected]>
> Reviewed-by: Doug Anderson <[email protected]>
> ---
> drivers/mmc/host/dw_mmc.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
> index ee5f167..bf82d7c 100644
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -2474,7 +2474,7 @@ int dw_mci_suspend(struct dw_mci *host)
> }
> }
>
> - if (host->vmmc)
> + if (host->vmmc && !(host->pdata->pm_caps & MMC_PM_KEEP_POWER))
> regulator_disable(host->vmmc);
>
> return 0;
> @@ -2485,7 +2485,7 @@ int dw_mci_resume(struct dw_mci *host)
> {
> int i, ret;
>
> - if (host->vmmc) {
> + if (host->vmmc && !(host->pdata->pm_caps & MMC_PM_KEEP_POWER)) {
> ret = regulator_enable(host->vmmc);
> if (ret) {
> dev_err(host->dev,
> --
> 1.8.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2013-08-12 17:31:36

by Doug Anderson

[permalink] [raw]
Subject: Re: [PATCH] mmc: dw_mmc: Don't disable vmmc if keeping power in suspend

Seungwon and Derek,

On Mon, Aug 12, 2013 at 3:33 AM, Seungwon Jeon <[email protected]> wrote:
> On Wed, August 07, 2013, Derek Basehore
>> If we keep power for suspend on a host for dw_mmc, don't disable vmmc-supply
>> regulator when suspending the host.
>
> I have a trivial comment.
> It would be better to add some macro for checking MMC_PM_KEEP_POWER.
> And I just wonder how the problem is silent. Origin code has stood up somewhat long.
> Did you see?
>
> Acked-by: Seungwon Jeon <[email protected]>
>
> Thanks,
> Seungwon Jeon
>
>>
>> Signed-off-by: Derek Basehore <[email protected]>
>> Reviewed-by: Doug Anderson <[email protected]>
>> ---
>> drivers/mmc/host/dw_mmc.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)

Though I reviewed this originally, I'd actually propose not landing it.

I've spent more time with the regulator code in dw_mmc and currently
believe that the regulators should be enabled / disabled in
MMC_POWER_UP / MMC_POWER_OFF. When we do that then the mmc core will
handle MMC_PM_KEEP_POWER. You can see my current thoughts on this in
<https://gerrit.chromium.org/gerrit/#/c/65263/>. I will try to post
that upstream before too long, but feel free to let me know any
comments.

-Doug