Still need prepare for dma's multiple mode if it's a preceding ACMD23 since it indicates a multiple block write is coming. Cc: "Steven J. Hill" <Steven.Hill@xxxxxxxxxx> Cc: Jan Glauber <jglauber@xxxxxxxxxx> Signed-off-by: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx> --- Just compile only, so need to do a solid test for sure the ACMD23 support won't break cavium host. I'm also suprised to see cavium relies on SD_SCR_CMD23_SUPPORT to do some preparation for dma, but personly I think it's wrong and should use a more legit way for that. drivers/mmc/host/cavium.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/cavium.c b/drivers/mmc/host/cavium.c index fbd29f0..56bf0e0 100644 --- a/drivers/mmc/host/cavium.c +++ b/drivers/mmc/host/cavium.c @@ -637,7 +637,8 @@ static u64 prepare_ext_dma(struct mmc_host *mmc, struct mmc_request *mrq) set_bus_id(&emm_dma, slot->bus_id); if (mmc_card_mmc(mmc->card) || (mmc_card_sd(mmc->card) && - (mmc->card->scr.cmds & SD_SCR_CMD23_SUPPORT))) + ((mmc->card->scr.cmds & SD_SCR_CMD23_SUPPORT) || + mrq->sbc->flags & MMC_CMD_SD_APP))) emm_dma |= FIELD_PREP(MIO_EMM_DMA_MULTI, 1); pr_debug("[%s] blocks: %u multi: %d\n", -- 1.9.1 -- 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