Message ID | 1506483638-115756-3-git-send-email-shawn.lin@rock-chips.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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",
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@cavium.com> Cc: Jan Glauber <jglauber@cavium.com> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> --- 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(-)