aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/core
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mmc/core')
-rw-r--r--drivers/mmc/core/core.c7
-rw-r--r--drivers/mmc/core/mmc.c16
-rw-r--r--drivers/mmc/core/sdio.c1
-rw-r--r--[-rwxr-xr-x]drivers/mmc/core/sdio_io.c0
4 files changed, 20 insertions, 4 deletions
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index e33a805..ddd6d50 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -214,7 +214,8 @@ static void __mmc_start_req(struct mmc_host *host, struct mmc_request *mrq)
}
#if (defined(CONFIG_MIDAS_COMMON) && !defined(CONFIG_EXYNOS4_DEV_DWMCI)) || \
- defined(CONFIG_MACH_U1) || defined(CONFIG_MACH_SLP_NAPLES)
+ defined(CONFIG_MACH_U1) || defined(CONFIG_MACH_SLP_NAPLES) || \
+ defined(CONFIG_MACH_TRATS)
#ifndef CONFIG_MMC_POLLING_WAIT_CMD23
if(mrq->sbc) {
@@ -2695,7 +2696,11 @@ static void __exit mmc_exit(void)
destroy_workqueue(workqueue);
}
+#ifdef CONFIG_FAST_RESUME
+beforeresume_initcall(mmc_init);
+#else
subsys_initcall(mmc_init);
+#endif
module_exit(mmc_exit);
MODULE_LICENSE("GPL");
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
index 53f0e21..81a77a8 100644
--- a/drivers/mmc/core/mmc.c
+++ b/drivers/mmc/core/mmc.c
@@ -118,6 +118,10 @@ static int mmc_decode_cid(struct mmc_card *card)
return -EINVAL;
}
+ pr_info("%s: %s: %08x%08x%08x%08x\n", mmc_hostname(card->host),
+ card->cid.prod_name,
+ card->raw_cid[0], card->raw_cid[1],
+ card->raw_cid[2], card->raw_cid[3]);
return 0;
}
@@ -350,7 +354,11 @@ static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd)
}
card->ext_csd.rev = ext_csd[EXT_CSD_REV];
- if (card->ext_csd.rev > 6) {
+ /* eMMC 4.5 : ext_csd rev. is 6
+ * eMMC 5.0 : ext_csd rev. is 7
+ * It's temporary change.
+ */
+ if (card->ext_csd.rev > 7) {
printk(KERN_ERR "%s: unrecognised EXT_CSD revision %d\n",
mmc_hostname(card->host), card->ext_csd.rev);
err = -EINVAL;
@@ -571,8 +579,10 @@ static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd)
}
if (card->ext_csd.rev >= 5) {
- /* enable discard feature if emmc is 4.41 */
- card->ext_csd.feature_support |= MMC_DISCARD_FEATURE;
+ /* enable discard feature if emmc is 4.41+ */
+ if ((ext_csd[EXT_CSD_VENDOR_SPECIFIC_FIELD + 0] & 0x1) &&
+ (card->cid.manfid == 0x15))
+ card->ext_csd.feature_support |= MMC_DISCARD_FEATURE;
/* check whether the eMMC card supports HPI */
if (ext_csd[EXT_CSD_HPI_FEATURES] & 0x1) {
diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c
index 979cf0b..620a4b2 100644
--- a/drivers/mmc/core/sdio.c
+++ b/drivers/mmc/core/sdio.c
@@ -1058,6 +1058,7 @@ static const struct mmc_bus_ops mmc_sdio_ops = {
.alive = mmc_sdio_alive,
};
+
/*
* Starting point for SDIO card init.
*/
diff --git a/drivers/mmc/core/sdio_io.c b/drivers/mmc/core/sdio_io.c
index 3169452..3169452 100755..100644
--- a/drivers/mmc/core/sdio_io.c
+++ b/drivers/mmc/core/sdio_io.c