|
@@ -1102,11 +1102,13 @@ static int sdma_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd,
|
|
case DMA_SLAVE_CONFIG:
|
|
case DMA_SLAVE_CONFIG:
|
|
if (dmaengine_cfg->direction == DMA_DEV_TO_MEM) {
|
|
if (dmaengine_cfg->direction == DMA_DEV_TO_MEM) {
|
|
sdmac->per_address = dmaengine_cfg->src_addr;
|
|
sdmac->per_address = dmaengine_cfg->src_addr;
|
|
- sdmac->watermark_level = dmaengine_cfg->src_maxburst;
|
|
|
|
|
|
+ sdmac->watermark_level = dmaengine_cfg->src_maxburst *
|
|
|
|
+ dmaengine_cfg->src_addr_width;
|
|
sdmac->word_size = dmaengine_cfg->src_addr_width;
|
|
sdmac->word_size = dmaengine_cfg->src_addr_width;
|
|
} else {
|
|
} else {
|
|
sdmac->per_address = dmaengine_cfg->dst_addr;
|
|
sdmac->per_address = dmaengine_cfg->dst_addr;
|
|
- sdmac->watermark_level = dmaengine_cfg->dst_maxburst;
|
|
|
|
|
|
+ sdmac->watermark_level = dmaengine_cfg->dst_maxburst *
|
|
|
|
+ dmaengine_cfg->dst_addr_width;
|
|
sdmac->word_size = dmaengine_cfg->dst_addr_width;
|
|
sdmac->word_size = dmaengine_cfg->dst_addr_width;
|
|
}
|
|
}
|
|
sdmac->direction = dmaengine_cfg->direction;
|
|
sdmac->direction = dmaengine_cfg->direction;
|