drivers/mmc/host/sdhci-msm.c | 1 + 1 file changed, 1 insertion(+)
Enable MMC_CAP_AGGRESSIVE_PM for qualcomm controllers.
This enables runtime PM for eMMC/SD card.
Signed-off-by: Sarthak Garg <quic_sartgarg@quicinc.com>
---
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 e00208535bd1..6657f7db1b8e 100644
--- a/drivers/mmc/host/sdhci-msm.c
+++ b/drivers/mmc/host/sdhci-msm.c
@@ -2626,6 +2626,7 @@ static int sdhci_msm_probe(struct platform_device *pdev)
goto clk_disable;
}
+ msm_host->mmc->caps |= MMC_CAP_AGGRESSIVE_PM;
msm_host->mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY | MMC_CAP_NEED_RSP_BUSY;
/* Set the timeout value to max possible */
--
2.17.1
On Mon, 4 Nov 2024 at 07:07, Sarthak Garg <quic_sartgarg@quicinc.com> wrote: > > Enable MMC_CAP_AGGRESSIVE_PM for qualcomm controllers. > This enables runtime PM for eMMC/SD card. > > Signed-off-by: Sarthak Garg <quic_sartgarg@quicinc.com> In general I think using MMC_CAP_AGGRESSIVE_PM needs to be carefully selected. I am not saying it's a bad idea to use it, but the commit message above kind of indicates that this has only been enabled to make sure we avoid wasting energy at any cost. Maybe I am wrong? Today the default autosuspend timeout is set to 3000 ms, which means that beyond this idle-period the card internally will no longer be able to manage "garbage collect". For a poorly behaving SD card, for example, that could hurt future read/writes. Or maybe that isn't such a big problem after all? Also note that userspace via sysfs is able to change the autosuspend timeout and even disable runtime PM for the card, if that is needed. Kind regards Uffe > --- > 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 e00208535bd1..6657f7db1b8e 100644 > --- a/drivers/mmc/host/sdhci-msm.c > +++ b/drivers/mmc/host/sdhci-msm.c > @@ -2626,6 +2626,7 @@ static int sdhci_msm_probe(struct platform_device *pdev) > goto clk_disable; > } > > + msm_host->mmc->caps |= MMC_CAP_AGGRESSIVE_PM; > msm_host->mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY | MMC_CAP_NEED_RSP_BUSY; > > /* Set the timeout value to max possible */ > -- > 2.17.1 >
On Mon, Nov 04, 2024 at 11:37:22AM +0530, Sarthak Garg wrote: > Enable MMC_CAP_AGGRESSIVE_PM for qualcomm controllers. > This enables runtime PM for eMMC/SD card. Could you please mention, which platforms were tested with this patch? Note, upstream kernel supports a lot of platforms, including MSM8974, I think the oldest one, which uses SDHCI. > > Signed-off-by: Sarthak Garg <quic_sartgarg@quicinc.com> > --- > 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 e00208535bd1..6657f7db1b8e 100644 > --- a/drivers/mmc/host/sdhci-msm.c > +++ b/drivers/mmc/host/sdhci-msm.c > @@ -2626,6 +2626,7 @@ static int sdhci_msm_probe(struct platform_device *pdev) > goto clk_disable; > } > > + msm_host->mmc->caps |= MMC_CAP_AGGRESSIVE_PM; > msm_host->mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY | MMC_CAP_NEED_RSP_BUSY; > > /* Set the timeout value to max possible */ > -- > 2.17.1 > -- With best wishes Dmitry
On 11/4/2024 4:19 PM, Dmitry Baryshkov wrote: > On Mon, Nov 04, 2024 at 11:37:22AM +0530, Sarthak Garg wrote: >> Enable MMC_CAP_AGGRESSIVE_PM for qualcomm controllers. >> This enables runtime PM for eMMC/SD card. > > Could you please mention, which platforms were tested with this patch? > Note, upstream kernel supports a lot of platforms, including MSM8974, I > think the oldest one, which uses SDHCI. > This was tested with qdu1000 platform. >> >> Signed-off-by: Sarthak Garg <quic_sartgarg@quicinc.com> >> --- >> 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 e00208535bd1..6657f7db1b8e 100644 >> --- a/drivers/mmc/host/sdhci-msm.c >> +++ b/drivers/mmc/host/sdhci-msm.c >> @@ -2626,6 +2626,7 @@ static int sdhci_msm_probe(struct platform_device *pdev) >> goto clk_disable; >> } >> >> + msm_host->mmc->caps |= MMC_CAP_AGGRESSIVE_PM; >> msm_host->mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY | MMC_CAP_NEED_RSP_BUSY; >> >> /* Set the timeout value to max possible */ >> -- >> 2.17.1 >> >
On Fri, 15 Nov 2024 at 12:23, Sarthak Garg <quic_sartgarg@quicinc.com> wrote: > > > > On 11/4/2024 4:19 PM, Dmitry Baryshkov wrote: > > On Mon, Nov 04, 2024 at 11:37:22AM +0530, Sarthak Garg wrote: > >> Enable MMC_CAP_AGGRESSIVE_PM for qualcomm controllers. > >> This enables runtime PM for eMMC/SD card. > > > > Could you please mention, which platforms were tested with this patch? > > Note, upstream kernel supports a lot of platforms, including MSM8974, I > > think the oldest one, which uses SDHCI. > > > > This was tested with qdu1000 platform. Are you sure that it won't break other platforms? > > >> > >> Signed-off-by: Sarthak Garg <quic_sartgarg@quicinc.com> > >> --- > >> 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 e00208535bd1..6657f7db1b8e 100644 > >> --- a/drivers/mmc/host/sdhci-msm.c > >> +++ b/drivers/mmc/host/sdhci-msm.c > >> @@ -2626,6 +2626,7 @@ static int sdhci_msm_probe(struct platform_device *pdev) > >> goto clk_disable; > >> } > >> > >> + msm_host->mmc->caps |= MMC_CAP_AGGRESSIVE_PM; > >> msm_host->mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY | MMC_CAP_NEED_RSP_BUSY; > >> > >> /* Set the timeout value to max possible */ > >> -- > >> 2.17.1 > >> > > -- With best wishes Dmitry
© 2016 - 2024 Red Hat, Inc.