Re: [PATCH] mmc: sdhci-esdhc-imx: Enable/Disable mmc clock during runtime suspend

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

 



Hi

I have some questions:

On Thu, Dec 21, 2017 at 2:22 PM, Michael Trimarchi
<michael@xxxxxxxxxxxxxxxxxxxx> wrote:
> mmc clock can be stopped during runtime suspend and restart during runtime
> resume. This let us know to not have any clock running and this reduce
> the EMI of the device when the bus is not in use
>
> Signed-off-by: Michael Trimarchi <michael@xxxxxxxxxxxxxxxxxxxx>
> ---
>  drivers/mmc/host/sdhci-esdhc-imx.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
> index 7123ef9..9a5e96f 100644
> --- a/drivers/mmc/host/sdhci-esdhc-imx.c
> +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
> @@ -196,6 +196,7 @@ struct pltfm_imx_data {
>         struct clk *clk_ipg;
>         struct clk *clk_ahb;
>         struct clk *clk_per;
> +       unsigned int actual_clock;
>         enum {
>                 NO_CMD_PENDING,      /* no multiblock command pending*/
>                 MULTIBLK_IN_PROCESS, /* exact multiblock cmd in process */
> @@ -1346,6 +1347,9 @@ static int sdhci_esdhc_runtime_suspend(struct device *dev)
>
>         ret = sdhci_runtime_suspend_host(host);
>
> +       imx_data->actual_clock = host->mmc->actual_clock;
> +       esdhc_pltfm_set_clock(host, 0);
> +
>         if (!sdhci_sdio_irq_enabled(host)) {
>                 clk_disable_unprepare(imx_data->clk_per);
>                 clk_disable_unprepare(imx_data->clk_ipg);

What if the runtime suspend fail in the sdhci_runtime_suspend_host? Is
the runtime resume called?

Because in the old code the ret is not taken in account to unprepare
and disable the clock so I did not
take in account too. Is this correct?

Michael

> @@ -1366,6 +1370,7 @@ static int sdhci_esdhc_runtime_resume(struct device *dev)
>                 clk_prepare_enable(imx_data->clk_ipg);
>         }
>         clk_prepare_enable(imx_data->clk_ahb);
> +       esdhc_pltfm_set_clock(host, imx_data->actual_clock);
>
>         return sdhci_runtime_resume_host(host);
>  }
> --
> 2.7.4
>



-- 
| Michael Nazzareno Trimarchi                     Amarula Solutions BV |
| COO  -  Founder                                      Cruquiuskade 47 |
| +31(0)851119172                                 Amsterdam 1018 AM NL |
|                  [`as] http://www.amarulasolutions.com               |
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux