diff options
Diffstat (limited to 'drivers/mmc/core')
-rw-r--r-- | drivers/mmc/core/core.c | 7 | ||||
-rw-r--r-- | drivers/mmc/core/mmc.c | 16 | ||||
-rw-r--r-- | drivers/mmc/core/sdio.c | 1 | ||||
-rw-r--r--[-rwxr-xr-x] | drivers/mmc/core/sdio_io.c | 0 |
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 |