aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/dma/dmaengine.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c
index 0e035a8cf401..2890d744bb1b 100644
--- a/drivers/dma/dmaengine.c
+++ b/drivers/dma/dmaengine.c
@@ -571,11 +571,15 @@ struct dma_chan *dma_get_any_slave_channel(struct dma_device *device)
571 571
572 chan = private_candidate(&mask, device, NULL, NULL); 572 chan = private_candidate(&mask, device, NULL, NULL);
573 if (chan) { 573 if (chan) {
574 dma_cap_set(DMA_PRIVATE, device->cap_mask);
575 device->privatecnt++;
574 err = dma_chan_get(chan); 576 err = dma_chan_get(chan);
575 if (err) { 577 if (err) {
576 pr_debug("%s: failed to get %s: (%d)\n", 578 pr_debug("%s: failed to get %s: (%d)\n",
577 __func__, dma_chan_name(chan), err); 579 __func__, dma_chan_name(chan), err);
578 chan = NULL; 580 chan = NULL;
581 if (--device->privatecnt == 0)
582 dma_cap_clear(DMA_PRIVATE, device->cap_mask);
579 } 583 }
580 } 584 }
581 585