2023-09-29 18:50:48

by Sarthak Garg

[permalink] [raw]
Subject: [PATCH V2 2/2] mmc: sdhci-msm: Enable MMC_CAP2_SLEEP_AWAKE for Qualcomm controllers

Enable MMC_CAP2_SLEEP_AWAKE for Qualcomm controllers to let them use
sleep/awake functionality for faster eMMC resume instead of
doing full initialization.

Signed-off-by: Sarthak Garg <[email protected]>
---
drivers/mmc/host/sdhci-msm.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
index 668e0aceeeba..be44a6851fc9 100644
--- a/drivers/mmc/host/sdhci-msm.c
+++ b/drivers/mmc/host/sdhci-msm.c
@@ -2627,6 +2627,7 @@ static int sdhci_msm_probe(struct platform_device *pdev)
}

msm_host->mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY | MMC_CAP_NEED_RSP_BUSY;
+ msm_host->mmc->caps2 |= MMC_CAP2_SLEEP_AWAKE;

/* Set the timeout value to max possible */
host->max_timeout_count = 0xF;
--
2.17.1


2023-10-08 02:22:49

by Wenchao Chen

[permalink] [raw]
Subject: Re: [PATCH V2 2/2] mmc: sdhci-msm: Enable MMC_CAP2_SLEEP_AWAKE for Qualcomm controllers

On Fri, 29 Sept 2023 at 22:44, Sarthak Garg <[email protected]> wrote:
>
> Enable MMC_CAP2_SLEEP_AWAKE for Qualcomm controllers to let them use
> sleep/awake functionality for faster eMMC resume instead of
> doing full initialization.
>
> Signed-off-by: Sarthak Garg <[email protected]>
> ---
> drivers/mmc/host/sdhci-msm.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
> index 668e0aceeeba..be44a6851fc9 100644
> --- a/drivers/mmc/host/sdhci-msm.c
> +++ b/drivers/mmc/host/sdhci-msm.c
> @@ -2627,6 +2627,7 @@ static int sdhci_msm_probe(struct platform_device *pdev)
> }
>
> msm_host->mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY | MMC_CAP_NEED_RSP_BUSY;
> + msm_host->mmc->caps2 |= MMC_CAP2_SLEEP_AWAKE;
>

Need "MMC_CAP_AGGRESSIVE_PM"?
/*
* Callback for runtime_suspend.
*/
static int mmc_runtime_suspend(struct mmc_host *host)
{
int err;

if (!(host->caps & MMC_CAP_AGGRESSIVE_PM))
return 0;

err = _mmc_suspend(host, true);
if (err)
pr_err("%s: error %d doing aggressive suspend\n",
mmc_hostname(host), err);

return err;
}



> /* Set the timeout value to max possible */
> host->max_timeout_count = 0xF;
> --
> 2.17.1
>

2023-10-16 09:58:38

by Sarthak Garg

[permalink] [raw]
Subject: Re: [PATCH V2 2/2] mmc: sdhci-msm: Enable MMC_CAP2_SLEEP_AWAKE for Qualcomm controllers



On 10/8/2023 7:52 AM, Wenchao Chen wrote:
> On Fri, 29 Sept 2023 at 22:44, Sarthak Garg <[email protected]> wrote:
>>
>> Enable MMC_CAP2_SLEEP_AWAKE for Qualcomm controllers to let them use
>> sleep/awake functionality for faster eMMC resume instead of
>> doing full initialization.
>>
>> Signed-off-by: Sarthak Garg <[email protected]>
>> ---
>> drivers/mmc/host/sdhci-msm.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
>> index 668e0aceeeba..be44a6851fc9 100644
>> --- a/drivers/mmc/host/sdhci-msm.c
>> +++ b/drivers/mmc/host/sdhci-msm.c
>> @@ -2627,6 +2627,7 @@ static int sdhci_msm_probe(struct platform_device *pdev)
>> }
>>
>> msm_host->mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY | MMC_CAP_NEED_RSP_BUSY;
>> + msm_host->mmc->caps2 |= MMC_CAP2_SLEEP_AWAKE;
>>
>
> Need "MMC_CAP_AGGRESSIVE_PM"?
> /*
> * Callback for runtime_suspend.
> */
> static int mmc_runtime_suspend(struct mmc_host *host)
> {
> int err;
>
> if (!(host->caps & MMC_CAP_AGGRESSIVE_PM))
> return 0;
>
> err = _mmc_suspend(host, true);
> if (err)
> pr_err("%s: error %d doing aggressive suspend\n",
> mmc_hostname(host), err);
>
> return err;
> }
>
>
>


Thanks for pointing .. yes this is needed and missed to push this. Will
push in V3.

Thanks,
Sarthak


>> /* Set the timeout value to max possible */
>> host->max_timeout_count = 0xF;
>> --
>> 2.17.1
>>