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

Commit 3970ec5d authored by Sayali Lokhande's avatar Sayali Lokhande Committed by Vijay Viswanath
Browse files

mmc: core: Use mmc_reset instead of power_restore



On 4.4 kernel, 'commit 364549dd ("mmc: core: Remove
redundant ->power_restore() callback for MMC")' removed
power_restore callback for MMC since mmc_reset is
implemented. Hence use reset instead of power_restore in
mmc_cmdq_hw_reset. Also modify the caller function mmc_cmdq_hw_reset
to properly use the mmc_reset.

Change-Id: Ia06d579401b6a083b164dff7a253d1eb3caef1a3
Signed-off-by: default avatarSayali Lokhande <sayalil@codeaurora.org>
Signed-off-by: default avatarVijay Viswanath <vviswana@codeaurora.org>
parent ea7ba3ab
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -3944,12 +3944,10 @@ static void mmc_hw_reset_for_init(struct mmc_host *host)
 */
int mmc_cmdq_hw_reset(struct mmc_host *host)
{
	if (!host->bus_ops->power_restore)
	if (!host->bus_ops->reset)
		return -EOPNOTSUPP;

	mmc_power_cycle(host, host->ocr_avail);
	mmc_select_voltage(host, host->card->ocr);
	return host->bus_ops->power_restore(host);
	return host->bus_ops->reset(host);
}
EXPORT_SYMBOL(mmc_cmdq_hw_reset);

+24 −1
Original line number Diff line number Diff line
@@ -2892,6 +2892,7 @@ EXPORT_SYMBOL(mmc_can_reset);
static int mmc_reset(struct mmc_host *host)
{
	struct mmc_card *card = host->card;
	int ret;

	if ((host->caps & MMC_CAP_HW_RESET) && host->ops->hw_reset &&
	     mmc_can_reset(card)) {
@@ -2904,7 +2905,29 @@ static int mmc_reset(struct mmc_host *host)
		/* Do a brute force power cycle */
		mmc_power_cycle(host, card->ocr);
	}
	return mmc_init_card(host, card->ocr, card);

	/* Suspend clk scaling to avoid switching frequencies intermittently */

	ret = mmc_suspend_clk_scaling(host);
	if (ret) {
		pr_err("%s: %s: fail to suspend clock scaling (%d)\n",
			mmc_hostname(host), __func__, ret);
		return ret;
	}

	ret = mmc_init_card(host, host->card->ocr, host->card);
	if (ret) {
		pr_err("%s: %s: mmc_init_card failed (%d)\n",
			mmc_hostname(host), __func__, ret);
		return ret;
	}

	ret = mmc_resume_clk_scaling(host);
	if (ret)
		pr_err("%s: %s: fail to resume clock scaling (%d)\n",
			mmc_hostname(host), __func__, ret);

	return ret;
}

static const struct mmc_bus_ops mmc_ops = {