diff options
| author | Sahitya Tummala <stummala@codeaurora.org> | 2015-12-21 14:43:42 +0530 |
|---|---|---|
| committer | Subhash Jadavani <subhashj@codeaurora.org> | 2016-05-31 15:28:00 -0700 |
| commit | 13e2446bf85d8679095c24bb450cc6007d4bbb24 (patch) | |
| tree | d5fa0885cdb92128a48c3cc6334f835e2d00f30d | |
| parent | 828371cf1651bada888a4c52d99dbb2999abe17c (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.c | 22 | ||||
| -rw-r--r-- | drivers/mmc/core/sdio.c | 3 | ||||
| -rw-r--r-- | drivers/mmc/host/sdhci-msm.c | 14 | ||||
| -rw-r--r-- | drivers/mmc/host/sdhci.c | 19 | ||||
| -rw-r--r-- | drivers/mmc/host/sdhci.h | 1 | ||||
| -rw-r--r-- | include/linux/mmc/card.h | 1 | ||||
| -rw-r--r-- | include/linux/mmc/host.h | 2 |
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 */ }; /** |
