struct mmc_data *data,
int dma_ch)
{
+ /* pandora hack: only benefits wifi, so only set there, just in case */
+ if (host->id != OMAP_MMC3_DEVID)
+ return;
+
if (data->flags & MMC_DATA_WRITE) {
- omap_set_dma_dest_params(dma_ch, 0, OMAP_DMA_AMODE_CONSTANT,
- (host->mapbase + OMAP_HSMMC_DATA), 0, 0);
omap_set_dma_src_burst_mode(dma_ch, OMAP_DMA_DATA_BURST_16);
omap_set_dma_src_data_pack(dma_ch, 1);
} else {
- omap_set_dma_src_params(dma_ch, 0, OMAP_DMA_AMODE_CONSTANT,
- (host->mapbase + OMAP_HSMMC_DATA), 0, 0);
omap_set_dma_dest_burst_mode(dma_ch, OMAP_DMA_DATA_BURST_16);
omap_set_dma_dest_data_pack(dma_ch, 1);
- omap_set_dma_write_mode(dma_ch, OMAP_DMA_WRITE_LAST_NON_POSTED);
}
}
dma_ch = host->dma_ch;
if (data->flags & MMC_DATA_WRITE) {
+ omap_set_dma_dest_params(dma_ch, 0, OMAP_DMA_AMODE_CONSTANT,
+ (host->mapbase + OMAP_HSMMC_DATA), 0, 0);
omap_set_dma_src_params(dma_ch, 0, OMAP_DMA_AMODE_POST_INC,
sg_dma_address(sgl), 0, 0);
- sync = OMAP_DMA_DST_SYNC_PREFETCH;
+ sync = OMAP_DMA_DST_SYNC;
} else {
+ omap_set_dma_src_params(dma_ch, 0, OMAP_DMA_AMODE_CONSTANT,
+ (host->mapbase + OMAP_HSMMC_DATA), 0, 0);
omap_set_dma_dest_params(dma_ch, 0, OMAP_DMA_AMODE_POST_INC,
sg_dma_address(sgl), 0, 0);
sync = OMAP_DMA_SRC_SYNC;