On 19 December 2013 15:43, Seungwon Jeon <[email protected]> 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 <[email protected]>
>
> 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 <[email protected]>
>
>> ---
>> 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 [email protected]
>> 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html