diff options
Diffstat (limited to 'drivers/dma')
-rw-r--r-- | drivers/dma/at_hdmac.c | 4 | ||||
-rw-r--r-- | drivers/dma/at_hdmac_regs.h | 17 | ||||
-rw-r--r-- | drivers/dma/dmatest.c | 2 | ||||
-rw-r--r-- | drivers/dma/imx-sdma.c | 6 | ||||
-rw-r--r-- | drivers/dma/iop-adma.c | 2 | ||||
-rw-r--r-- | drivers/dma/shdma.c | 3 |
6 files changed, 18 insertions, 16 deletions
diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c index 97f87b29b9f3..f4aed5fc2cb6 100644 --- a/drivers/dma/at_hdmac.c +++ b/drivers/dma/at_hdmac.c | |||
@@ -1343,7 +1343,7 @@ static int __init at_dma_probe(struct platform_device *pdev) | |||
1343 | 1343 | ||
1344 | tasklet_init(&atchan->tasklet, atc_tasklet, | 1344 | tasklet_init(&atchan->tasklet, atc_tasklet, |
1345 | (unsigned long)atchan); | 1345 | (unsigned long)atchan); |
1346 | atc_enable_irq(atchan); | 1346 | atc_enable_chan_irq(atdma, i); |
1347 | } | 1347 | } |
1348 | 1348 | ||
1349 | /* set base routines */ | 1349 | /* set base routines */ |
@@ -1410,7 +1410,7 @@ static int __exit at_dma_remove(struct platform_device *pdev) | |||
1410 | struct at_dma_chan *atchan = to_at_dma_chan(chan); | 1410 | struct at_dma_chan *atchan = to_at_dma_chan(chan); |
1411 | 1411 | ||
1412 | /* Disable interrupts */ | 1412 | /* Disable interrupts */ |
1413 | atc_disable_irq(atchan); | 1413 | atc_disable_chan_irq(atdma, chan->chan_id); |
1414 | tasklet_disable(&atchan->tasklet); | 1414 | tasklet_disable(&atchan->tasklet); |
1415 | 1415 | ||
1416 | tasklet_kill(&atchan->tasklet); | 1416 | tasklet_kill(&atchan->tasklet); |
diff --git a/drivers/dma/at_hdmac_regs.h b/drivers/dma/at_hdmac_regs.h index dcaedfc181cf..a8d3277d60b5 100644 --- a/drivers/dma/at_hdmac_regs.h +++ b/drivers/dma/at_hdmac_regs.h | |||
@@ -327,28 +327,27 @@ static void atc_dump_lli(struct at_dma_chan *atchan, struct at_lli *lli) | |||
327 | } | 327 | } |
328 | 328 | ||
329 | 329 | ||
330 | static void atc_setup_irq(struct at_dma_chan *atchan, int on) | 330 | static void atc_setup_irq(struct at_dma *atdma, int chan_id, int on) |
331 | { | 331 | { |
332 | struct at_dma *atdma = to_at_dma(atchan->chan_common.device); | 332 | u32 ebci; |
333 | u32 ebci; | ||
334 | 333 | ||
335 | /* enable interrupts on buffer transfer completion & error */ | 334 | /* enable interrupts on buffer transfer completion & error */ |
336 | ebci = AT_DMA_BTC(atchan->chan_common.chan_id) | 335 | ebci = AT_DMA_BTC(chan_id) |
337 | | AT_DMA_ERR(atchan->chan_common.chan_id); | 336 | | AT_DMA_ERR(chan_id); |
338 | if (on) | 337 | if (on) |
339 | dma_writel(atdma, EBCIER, ebci); | 338 | dma_writel(atdma, EBCIER, ebci); |
340 | else | 339 | else |
341 | dma_writel(atdma, EBCIDR, ebci); | 340 | dma_writel(atdma, EBCIDR, ebci); |
342 | } | 341 | } |
343 | 342 | ||
344 | static inline void atc_enable_irq(struct at_dma_chan *atchan) | 343 | static void atc_enable_chan_irq(struct at_dma *atdma, int chan_id) |
345 | { | 344 | { |
346 | atc_setup_irq(atchan, 1); | 345 | atc_setup_irq(atdma, chan_id, 1); |
347 | } | 346 | } |
348 | 347 | ||
349 | static inline void atc_disable_irq(struct at_dma_chan *atchan) | 348 | static void atc_disable_chan_irq(struct at_dma *atdma, int chan_id) |
350 | { | 349 | { |
351 | atc_setup_irq(atchan, 0); | 350 | atc_setup_irq(atdma, chan_id, 0); |
352 | } | 351 | } |
353 | 352 | ||
354 | 353 | ||
diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c index 2b8661b54eaf..24225f0fdcd8 100644 --- a/drivers/dma/dmatest.c +++ b/drivers/dma/dmatest.c | |||
@@ -599,7 +599,7 @@ static int dmatest_add_channel(struct dma_chan *chan) | |||
599 | } | 599 | } |
600 | if (dma_has_cap(DMA_PQ, dma_dev->cap_mask)) { | 600 | if (dma_has_cap(DMA_PQ, dma_dev->cap_mask)) { |
601 | cnt = dmatest_add_threads(dtc, DMA_PQ); | 601 | cnt = dmatest_add_threads(dtc, DMA_PQ); |
602 | thread_count += cnt > 0 ?: 0; | 602 | thread_count += cnt > 0 ? cnt : 0; |
603 | } | 603 | } |
604 | 604 | ||
605 | pr_info("dmatest: Started %u threads using %s\n", | 605 | pr_info("dmatest: Started %u threads using %s\n", |
diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c index a8af379680c1..8bc5acf36ee5 100644 --- a/drivers/dma/imx-sdma.c +++ b/drivers/dma/imx-sdma.c | |||
@@ -1102,11 +1102,13 @@ static int sdma_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd, | |||
1102 | case DMA_SLAVE_CONFIG: | 1102 | case DMA_SLAVE_CONFIG: |
1103 | if (dmaengine_cfg->direction == DMA_DEV_TO_MEM) { | 1103 | if (dmaengine_cfg->direction == DMA_DEV_TO_MEM) { |
1104 | sdmac->per_address = dmaengine_cfg->src_addr; | 1104 | sdmac->per_address = dmaengine_cfg->src_addr; |
1105 | sdmac->watermark_level = dmaengine_cfg->src_maxburst; | 1105 | sdmac->watermark_level = dmaengine_cfg->src_maxburst * |
1106 | dmaengine_cfg->src_addr_width; | ||
1106 | sdmac->word_size = dmaengine_cfg->src_addr_width; | 1107 | sdmac->word_size = dmaengine_cfg->src_addr_width; |
1107 | } else { | 1108 | } else { |
1108 | sdmac->per_address = dmaengine_cfg->dst_addr; | 1109 | sdmac->per_address = dmaengine_cfg->dst_addr; |
1109 | sdmac->watermark_level = dmaengine_cfg->dst_maxburst; | 1110 | sdmac->watermark_level = dmaengine_cfg->dst_maxburst * |
1111 | dmaengine_cfg->dst_addr_width; | ||
1110 | sdmac->word_size = dmaengine_cfg->dst_addr_width; | 1112 | sdmac->word_size = dmaengine_cfg->dst_addr_width; |
1111 | } | 1113 | } |
1112 | sdmac->direction = dmaengine_cfg->direction; | 1114 | sdmac->direction = dmaengine_cfg->direction; |
diff --git a/drivers/dma/iop-adma.c b/drivers/dma/iop-adma.c index 04be90b645b8..faf88b7e1e71 100644 --- a/drivers/dma/iop-adma.c +++ b/drivers/dma/iop-adma.c | |||
@@ -1482,7 +1482,7 @@ static int __devinit iop_adma_probe(struct platform_device *pdev) | |||
1482 | goto err_free_adev; | 1482 | goto err_free_adev; |
1483 | } | 1483 | } |
1484 | 1484 | ||
1485 | dev_dbg(&pdev->dev, "%s: allocted descriptor pool virt %p phys %p\n", | 1485 | dev_dbg(&pdev->dev, "%s: allocated descriptor pool virt %p phys %p\n", |
1486 | __func__, adev->dma_desc_pool_virt, | 1486 | __func__, adev->dma_desc_pool_virt, |
1487 | (void *) adev->dma_desc_pool); | 1487 | (void *) adev->dma_desc_pool); |
1488 | 1488 | ||
diff --git a/drivers/dma/shdma.c b/drivers/dma/shdma.c index 54043cd831c8..812fd76e9c18 100644 --- a/drivers/dma/shdma.c +++ b/drivers/dma/shdma.c | |||
@@ -1262,7 +1262,8 @@ static int __init sh_dmae_probe(struct platform_device *pdev) | |||
1262 | 1262 | ||
1263 | INIT_LIST_HEAD(&shdev->common.channels); | 1263 | INIT_LIST_HEAD(&shdev->common.channels); |
1264 | 1264 | ||
1265 | dma_cap_set(DMA_MEMCPY, shdev->common.cap_mask); | 1265 | if (!pdata->slave_only) |
1266 | dma_cap_set(DMA_MEMCPY, shdev->common.cap_mask); | ||
1266 | if (pdata->slave && pdata->slave_num) | 1267 | if (pdata->slave && pdata->slave_num) |
1267 | dma_cap_set(DMA_SLAVE, shdev->common.cap_mask); | 1268 | dma_cap_set(DMA_SLAVE, shdev->common.cap_mask); |
1268 | 1269 | ||