Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 03a2f767 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "mmc: block: Disable clock scaling during shutdown"

parents 8aa933aa e890ba8d
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -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
+7 −2
Original line number Diff line number Diff line
@@ -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);
+17 −0
Original line number Diff line number Diff line
@@ -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,
@@ -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,
};

/*