On 19 December 2013 15:43, Seungwon Jeon <tgih.jun@xxxxxxxxxxx> wrote: > On Wed, December 18, 2013 Ulf Hansson wrote: >> There are no reason to why the use of a non-volatile internal eMMC >> cache should be controlled by a host cap. Instead let's just enable it >> if the eMMC card supports it. >> >> Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> > > When cache feature was introduced for the first time, there was stability issue in some devices. > So host should have decided whether to select that feature. > Now, your change makes sense. But just check minor one below. > > Acked-by: Seungwon Jeon <tgih.jun@xxxxxxxxxxx> > >> --- >> drivers/mmc/core/core.c | 3 --- >> drivers/mmc/core/mmc.c | 3 +-- >> include/linux/mmc/host.h | 1 - >> 3 files changed, 1 insertion(+), 6 deletions(-) >> >> diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c >> index df591a9..66ec347 100644 >> --- a/drivers/mmc/core/core.c >> +++ b/drivers/mmc/core/core.c >> @@ -2585,9 +2585,6 @@ int mmc_flush_cache(struct mmc_card *card) >> struct mmc_host *host = card->host; > Also, 'host' can be removed. No use. Thanks for your review! Will fix in v2 and add your ack. Kind regards Ulf Hansson > > Thanks, > Seungwon Jeon > >> int err = 0; >> >> - if (!(host->caps2 & MMC_CAP2_CACHE_CTRL)) >> - return err; >> - >> if (mmc_card_mmc(card) && >> (card->ext_csd.cache_size > 0) && >> (card->ext_csd.cache_ctrl & 1)) { >> diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c >> index ef1cc73..7ab3e9c 100644 >> --- a/drivers/mmc/core/mmc.c >> +++ b/drivers/mmc/core/mmc.c >> @@ -1287,8 +1287,7 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, >> * If cache size is higher than 0, this indicates >> * the existence of cache and it can be turned on. >> */ >> - if ((host->caps2 & MMC_CAP2_CACHE_CTRL) && >> - card->ext_csd.cache_size > 0) { >> + if (card->ext_csd.cache_size > 0) { >> err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, >> EXT_CSD_CACHE_CTRL, 1, >> card->ext_csd.generic_cmd6_time); >> diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h >> index f539bc7..8383e3f 100644 >> --- a/include/linux/mmc/host.h >> +++ b/include/linux/mmc/host.h >> @@ -264,7 +264,6 @@ struct mmc_host { >> u32 caps2; /* More host capabilities */ >> >> #define MMC_CAP2_BOOTPART_NOACC (1 << 0) /* Boot partition no access */ >> -#define MMC_CAP2_CACHE_CTRL (1 << 1) /* Allow cache control */ >> #define MMC_CAP2_FULL_PWR_CYCLE (1 << 2) /* Can do full power cycle */ >> #define MMC_CAP2_NO_MULTI_READ (1 << 3) /* Multiblock reads don't work */ >> #define MMC_CAP2_NO_SLEEP_CMD (1 << 4) /* Don't allow sleep command */ >> -- >> 1.7.9.5 >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html