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

Commit 2f7816b1 authored by Sarthak Garg's avatar Sarthak Garg Committed by Gerrit - the friendly Code Review server
Browse files

mmc: sdhci-msm: Reset host->pwr and POWER_CONTROL register



When the SD card is removed regulators are never turned ON.
Reset host->pwr and POWER_CONTROL register accordingly.

Change-Id: I6fb9d357c54d172fb3447e4f0b7ceaaf48c9dbf7
Signed-off-by: default avatarSarthak Garg <sartgarg@codeaurora.org>
Signed-off-by: default avatarRam Prakash Gupta <rampraka@codeaurora.org>
parent 92efb2ac
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -1857,14 +1857,6 @@ static void sdhci_msm_check_power_status(struct sdhci_host *host, u32 req_type)
		return;
	}

	if (mmc->card && mmc->ops->get_cd && !mmc->ops->get_cd(mmc) &&
			(req_type & REQ_BUS_ON)) {
		pr_debug(
			"%s: Regulators are never turned on when SD card is removed so do not wait for pwr irq\n",
				mmc_hostname(host->mmc));
		return;
	}

	if ((req_type & msm_host->curr_pwr_state) ||
			(req_type & msm_host->curr_io_level))
		done = true;
@@ -1882,6 +1874,13 @@ static void sdhci_msm_check_power_status(struct sdhci_host *host, u32 req_type)
				 "%s: pwr_irq for req: (%d) timed out\n",
				 mmc_hostname(host->mmc), req_type);
	}

	if (mmc->card && mmc->ops->get_cd && !mmc->ops->get_cd(mmc) &&
			(req_type & REQ_BUS_ON)) {
		host->pwr = 0;
		sdhci_writeb(host, 0, SDHCI_POWER_CONTROL);
	}

	pr_debug("%s: %s: request %d done\n", mmc_hostname(host->mmc),
			__func__, req_type);
}