mmc: sdhci: only flush cache for data command
authorKevin Liu <kevinliu@asrmicro.com>
Wed, 8 Mar 2017 07:16:44 +0000 (15:16 +0800)
committerJaehoon Chung <jh80.chung@samsung.com>
Tue, 21 Mar 2017 12:03:14 +0000 (21:03 +0900)
No need to flush cache for command without data.

Signed-off-by: Kevin Liu <kevinliu@asrmicro.com>
drivers/mmc/sdhci.c

index 93cefd8..c94d58d 100644 (file)
@@ -242,8 +242,10 @@ static int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd,
 
        sdhci_writel(host, cmd->cmdarg, SDHCI_ARGUMENT);
 #ifdef CONFIG_MMC_SDHCI_SDMA
-       trans_bytes = ALIGN(trans_bytes, CONFIG_SYS_CACHELINE_SIZE);
-       flush_cache(start_addr, trans_bytes);
+       if (data != 0) {
+               trans_bytes = ALIGN(trans_bytes, CONFIG_SYS_CACHELINE_SIZE);
+               flush_cache(start_addr, trans_bytes);
+       }
 #endif
        sdhci_writew(host, SDHCI_MAKE_CMD(cmd->cmdidx, flags), SDHCI_COMMAND);
        start = get_timer(0);