summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSahitya Tummala <stummala@codeaurora.org>2015-12-21 14:43:42 +0530
committerSubhash Jadavani <subhashj@codeaurora.org>2016-05-31 15:28:00 -0700
commit13e2446bf85d8679095c24bb450cc6007d4bbb24 (patch)
treed5fa0885cdb92128a48c3cc6334f835e2d00f30d
parent828371cf1651bada888a4c52d99dbb2999abe17c (diff)
mmc: sdhci: revert MMC_PM_KEEP_POWER changes related to emmc
This change reverts the following gerrits as they cause the timeout issues with Hynix cards. Also, the latest code supports sleep/awake through CMD5 and hence MMC_PM_KEEP_POWER need not be set for Hynix eMMC cards. edcf5be "mmc: host: add detect vops chain" 09287cb "mmc: sdhci-msm: configure MMC_PM_KEEP_POWER for SDIO" 7cf603a "mmc: schci: add support for MMC_PM_KEEP_POWER in eMMC" c085820 "mmc: core: set MMC_PM_KEEP_POWER for certain Hynix mmc cards" CRs-Fixed: 947299 Change-Id: If863771191ee7c2b717d5817f4a88e4ad936653a Signed-off-by: Sahitya Tummala <stummala@codeaurora.org> [subhashj@codeaurora.org: fixed merge conflicts] Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
-rw-r--r--drivers/mmc/core/mmc.c22
-rw-r--r--drivers/mmc/core/sdio.c3
-rw-r--r--drivers/mmc/host/sdhci-msm.c14
-rw-r--r--drivers/mmc/host/sdhci.c19
-rw-r--r--drivers/mmc/host/sdhci.h1
-rw-r--r--include/linux/mmc/card.h1
-rw-r--r--include/linux/mmc/host.h2
7 files changed, 0 insertions, 62 deletions
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
index 39bf4455d16a..818a70b4007d 100644
--- a/drivers/mmc/core/mmc.c
+++ b/drivers/mmc/core/mmc.c
@@ -126,12 +126,6 @@ static void mmc_set_erase_size(struct mmc_card *card)
mmc_init_erase(card);
}
-static void add_pm_flag_mmc(struct mmc_card *card, int data)
-{
- if (mmc_card_mmc(card))
- card->host->pm_flags |= data;
-}
-
static const struct mmc_fixup mmc_fixups[] = {
/* avoid HPI for specific cards */
@@ -142,9 +136,6 @@ static const struct mmc_fixup mmc_fixups[] = {
MMC_FIXUP("MMC16G", CID_MANFID_KINGSTON, CID_OEMID_ANY,
add_quirk_mmc, MMC_QUIRK_CACHE_DISABLE),
- MMC_FIXUP_EXT_CSD_REV(CID_NAME_ANY, CID_MANFID_HYNIX, CID_OEMID_ANY,
- add_pm_flag_mmc, MMC_PM_KEEP_POWER, MMC_V5_0),
-
END_FIXUP
};
@@ -391,9 +382,6 @@ static int mmc_decode_ext_csd(struct mmc_card *card, u8 *ext_csd)
*/
card->ext_csd.rev = ext_csd[EXT_CSD_REV];
- /* fixup device after ext_csd revision field is updated */
- mmc_fixup_device(card, mmc_fixups);
-
card->ext_csd.raw_sectors[0] = ext_csd[EXT_CSD_SEC_CNT + 0];
card->ext_csd.raw_sectors[1] = ext_csd[EXT_CSD_SEC_CNT + 1];
card->ext_csd.raw_sectors[2] = ext_csd[EXT_CSD_SEC_CNT + 2];
@@ -2490,9 +2478,6 @@ static int _mmc_suspend(struct mmc_host *host, bool is_suspend)
if (mmc_card_suspended(host->card))
goto out;
- if (is_suspend)
- host->dev_status = DEV_SUSPENDING;
-
if (host->card->cmdq_init) {
BUG_ON(host->cmdq_ctx.active_reqs);
@@ -2535,11 +2520,6 @@ static int _mmc_suspend(struct mmc_host *host, bool is_suspend)
mmc_card_set_suspended(host->card);
}
out:
- if (err)
- host->dev_status = DEV_UNKNOWN;
- else if (is_suspend)
- host->dev_status = DEV_SUSPENDED;
-
/* Kick CMDQ thread to process any requests came in while suspending */
if (host->card->cmdq_init)
wake_up(&host->cmdq_ctx.wait);
@@ -2693,8 +2673,6 @@ static int _mmc_resume(struct mmc_host *host)
mmc_hostname(host), __func__, err);
out:
- if (!err)
- host->dev_status = DEV_RESUMED;
return err;
}
diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c
index e30936281a0d..059c39f62e27 100644
--- a/drivers/mmc/core/sdio.c
+++ b/drivers/mmc/core/sdio.c
@@ -941,9 +941,6 @@ static void mmc_sdio_detect(struct mmc_host *host)
*/
err = _mmc_detect_card_removed(host);
- if (host->ops && host->ops->detect)
- host->ops->detect(host, err);
-
mmc_release_host(host);
/*
diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
index 644906b5252a..f7607a73880a 100644
--- a/drivers/mmc/host/sdhci-msm.c
+++ b/drivers/mmc/host/sdhci-msm.c
@@ -3157,19 +3157,6 @@ static void sdhci_msm_clear_set_dumpregs(struct sdhci_host *host, bool set)
}
}
-static void sdhci_msm_detect(struct sdhci_host *host, bool detected)
-{
- struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
- struct sdhci_msm_host *msm_host = pltfm_host->priv;
- struct mmc_host *mmc = msm_host->mmc;
- struct mmc_card *card = mmc->card;
-
- if (detected && mmc_card_sdio(card))
- mmc->pm_caps |= MMC_PM_KEEP_POWER;
- else
- mmc->pm_caps &= ~MMC_PM_KEEP_POWER;
-}
-
int sdhci_msm_notify_load(struct sdhci_host *host, enum mmc_load state)
{
struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
@@ -3722,7 +3709,6 @@ static struct sdhci_ops sdhci_msm_ops = {
.reset = sdhci_msm_reset,
.clear_set_dumpregs = sdhci_msm_clear_set_dumpregs,
.enhanced_strobe_mask = sdhci_msm_enhanced_strobe_mask,
- .detect = sdhci_msm_detect,
.notify_load = sdhci_msm_notify_load,
.reset_workaround = sdhci_msm_reset_workaround,
.init = sdhci_msm_init,
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 4d4d68fb120a..50aa706d1d01 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -1402,16 +1402,6 @@ static void sdhci_set_power(struct sdhci_host *host, unsigned char mode,
struct mmc_host *mmc = host->mmc;
u8 pwr = 0;
- /*
- * Don't disable/re-enable power to the card when running a
- * suspend/resume sequence and the pm_flags are configured to preserve
- * card power during suspend.
- */
- if (mmc_card_keep_power(mmc) &&
- ((mmc->dev_status == DEV_SUSPENDED && mode == MMC_POWER_UP) ||
- (mmc->dev_status == DEV_SUSPENDING && mode == MMC_POWER_OFF)))
- return;
-
if (!IS_ERR(mmc->supply.vmmc)) {
spin_unlock_irq(&host->lock);
mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, vdd);
@@ -2632,14 +2622,6 @@ static void sdhci_card_event(struct mmc_host *mmc)
spin_unlock_irqrestore(&host->lock, flags);
}
-static void sdhci_detect(struct mmc_host *mmc, bool detected)
-{
- struct sdhci_host *host = mmc_priv(mmc);
-
- if (host->ops->detect)
- host->ops->detect(host, detected);
-}
-
static int sdhci_late_init(struct mmc_host *mmc)
{
struct sdhci_host *host = mmc_priv(mmc);
@@ -2682,7 +2664,6 @@ static const struct mmc_host_ops sdhci_ops = {
.disable = sdhci_disable,
.notify_load = sdhci_notify_load,
.notify_halt = sdhci_notify_halt,
- .detect = sdhci_detect,
.force_err_irq = sdhci_force_err_irq,
};
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
index b2e6d3958518..280eafd36ec9 100644
--- a/drivers/mmc/host/sdhci.h
+++ b/drivers/mmc/host/sdhci.h
@@ -670,7 +670,6 @@ struct sdhci_ops {
int (*enable_controller_clock)(struct sdhci_host *host);
void (*clear_set_dumpregs)(struct sdhci_host *host, bool set);
void (*enhanced_strobe_mask)(struct sdhci_host *host, bool set);
- void (*detect)(struct sdhci_host *host, bool detected);
void (*dump_vendor_regs)(struct sdhci_host *host);
void (*toggle_cdr)(struct sdhci_host *host, bool enable);
void (*voltage_switch)(struct sdhci_host *host);
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
index 5ee1a379b82b..d88f6a027679 100644
--- a/include/linux/mmc/card.h
+++ b/include/linux/mmc/card.h
@@ -485,7 +485,6 @@ struct mmc_fixup {
#define CID_MANFID_MICRON 0x13
#define CID_MANFID_SAMSUNG 0x15
#define CID_MANFID_KINGSTON 0x70
-#define CID_MANFID_HYNIX 0x90
#define CID_MANFID_ANY (-1u)
#define CID_OEMID_ANY ((unsigned short) -1)
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index 38731725cc80..cd79dd903a8b 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -181,7 +181,6 @@ struct mmc_host_ops {
int (*notify_load)(struct mmc_host *, enum mmc_load);
void (*notify_halt)(struct mmc_host *mmc, bool halt);
- void (*detect)(struct mmc_host *host, bool detected);
void (*force_err_irq)(struct mmc_host *host, u64 errmask);
};
@@ -291,7 +290,6 @@ enum dev_state {
DEV_SUSPENDING = 1,
DEV_SUSPENDED,
DEV_RESUMED,
- DEV_UNKNOWN, /* Device is in an unknown state */
};
/**