diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-20 10:35:31 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-20 10:35:31 -0700 |
commit | 372feacb36211faf18326cfddea85d69b9afe2e5 (patch) | |
tree | af9758c01d5c05c073ec57e84777a9985862dbf3 /drivers/dma/edma.c | |
parent | 5269519f9f05888bf52c4b71ed84d37c03c8aadb (diff) | |
parent | 8edc51c197b8f409bef7b21755254e6f3ce7ed23 (diff) |
Merge branch 'fixes' of git://git.infradead.org/users/vkoul/slave-dma
Pull slave-dmaengine fixes from Vinod Koul:
"Back from long weekend here in India and now the time to send fixes
for slave dmaengine.
- Dan's fix of sirf xlate code
- Jean's fix for timberland
- edma fixes by Sekhar for SG handling and Yuan for changing init
call"
* 'fixes' of git://git.infradead.org/users/vkoul/slave-dma:
dma: fix eDMA driver as a subsys_initcall
dmaengine: sirf: off by one in of_dma_sirfsoc_xlate()
platform: Fix timberdale dependencies
dma: edma: fix incorrect SG list handling
Diffstat (limited to 'drivers/dma/edma.c')
-rw-r--r-- | drivers/dma/edma.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/dma/edma.c b/drivers/dma/edma.c index cd04eb7b182..926360c2db6 100644 --- a/drivers/dma/edma.c +++ b/drivers/dma/edma.c @@ -182,11 +182,13 @@ static void edma_execute(struct edma_chan *echan) echan->ecc->dummy_slot); } - edma_resume(echan->ch_num); - if (edesc->processed <= MAX_NR_SG) { dev_dbg(dev, "first transfer starting %d\n", echan->ch_num); edma_start(echan->ch_num); + } else { + dev_dbg(dev, "chan: %d: completed %d elements, resuming\n", + echan->ch_num, edesc->processed); + edma_resume(echan->ch_num); } /* |