|
|
@@ -1373,11 +1373,15 @@ static int ark_mmc_start_transfer(struct mmc_driver *mmc_drv)
|
|
|
}
|
|
|
} else if (data->flags & DATA_DIR_READ) {
|
|
|
if (mmc_obj->rx_dummy_buffer) {
|
|
|
+ CP15_invalidate_dcache_for_dma((u32)mmc_obj->rx_dummy_buffer, (u32)mmc_obj->rx_dummy_buffer + data->blks * data->blksize);
|
|
|
memcpy(data->buf, mmc_obj->rx_dummy_buffer, data->blks * data->blksize);
|
|
|
vPortFree(mmc_obj->rx_dummy_buffer);
|
|
|
mmc_obj->rx_dummy_buffer = NULL;
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ if (data->flags & DATA_DIR_READ)
|
|
|
+ CP15_invalidate_dcache_for_dma((u32)data->buf, (u32)data->buf + data->blks * data->blksize);
|
|
|
}
|
|
|
} else {
|
|
|
reg = MMC_GetInterruptMask(mmc_obj);
|