Loading drivers/mmc/card/block.c +0 −4 Original line number Diff line number Diff line Loading @@ -4416,10 +4416,6 @@ static int _mmc_blk_suspend(struct mmc_card *card, bool wait) static void mmc_blk_shutdown(struct mmc_card *card) { _mmc_blk_suspend(card, 1); /* send power off notification */ if (mmc_card_mmc(card)) mmc_send_pon(card); } #ifdef CONFIG_PM Loading drivers/mmc/core/core.c +7 −2 Original line number Diff line number Diff line Loading @@ -794,10 +794,15 @@ int mmc_resume_clk_scaling(struct mmc_host *host) if (!mmc_can_scale_clk(host)) return 0; /* * If clock scaling is already exited when resume is called, like * during mmc shutdown, it is not an error and should not fail the * API calling this. */ if (!host->clk_scaling.devfreq) { pr_err("%s: %s: no devfreq is assosiated with this device\n", pr_warn("%s: %s: no devfreq is assosiated with this device\n", mmc_hostname(host), __func__); return -EPERM; return 0; } atomic_set(&host->clk_scaling.devfreq_abort, 0); Loading drivers/mmc/core/mmc.c +17 −0 Original line number Diff line number Diff line Loading @@ -2776,6 +2776,22 @@ static int mmc_power_restore(struct mmc_host *host) return ret; } static int mmc_shutdown(struct mmc_host *host) { struct mmc_card *card = host->card; /* * Exit clock scaling so that it doesn't kick in after * power off notification is sent */ if (host->caps2 & MMC_CAP2_CLK_SCALE) mmc_exit_clk_scaling(card->host); /* send power off notification */ if (mmc_card_mmc(card)) mmc_send_pon(card); return 0; } static const struct mmc_bus_ops mmc_ops = { .remove = mmc_remove, .detect = mmc_detect, Loading @@ -2786,6 +2802,7 @@ static const struct mmc_bus_ops mmc_ops = { .power_restore = mmc_power_restore, .alive = mmc_alive, .change_bus_speed = mmc_change_bus_speed, .shutdown = mmc_shutdown, }; /* Loading Loading
drivers/mmc/card/block.c +0 −4 Original line number Diff line number Diff line Loading @@ -4416,10 +4416,6 @@ static int _mmc_blk_suspend(struct mmc_card *card, bool wait) static void mmc_blk_shutdown(struct mmc_card *card) { _mmc_blk_suspend(card, 1); /* send power off notification */ if (mmc_card_mmc(card)) mmc_send_pon(card); } #ifdef CONFIG_PM Loading
drivers/mmc/core/core.c +7 −2 Original line number Diff line number Diff line Loading @@ -794,10 +794,15 @@ int mmc_resume_clk_scaling(struct mmc_host *host) if (!mmc_can_scale_clk(host)) return 0; /* * If clock scaling is already exited when resume is called, like * during mmc shutdown, it is not an error and should not fail the * API calling this. */ if (!host->clk_scaling.devfreq) { pr_err("%s: %s: no devfreq is assosiated with this device\n", pr_warn("%s: %s: no devfreq is assosiated with this device\n", mmc_hostname(host), __func__); return -EPERM; return 0; } atomic_set(&host->clk_scaling.devfreq_abort, 0); Loading
drivers/mmc/core/mmc.c +17 −0 Original line number Diff line number Diff line Loading @@ -2776,6 +2776,22 @@ static int mmc_power_restore(struct mmc_host *host) return ret; } static int mmc_shutdown(struct mmc_host *host) { struct mmc_card *card = host->card; /* * Exit clock scaling so that it doesn't kick in after * power off notification is sent */ if (host->caps2 & MMC_CAP2_CLK_SCALE) mmc_exit_clk_scaling(card->host); /* send power off notification */ if (mmc_card_mmc(card)) mmc_send_pon(card); return 0; } static const struct mmc_bus_ops mmc_ops = { .remove = mmc_remove, .detect = mmc_detect, Loading @@ -2786,6 +2802,7 @@ static const struct mmc_bus_ops mmc_ops = { .power_restore = mmc_power_restore, .alive = mmc_alive, .change_bus_speed = mmc_change_bus_speed, .shutdown = mmc_shutdown, }; /* Loading