diff options
Diffstat (limited to 'drivers/dma/edma.c')
-rw-r--r-- | drivers/dma/edma.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/dma/edma.c b/drivers/dma/edma.c index 0ea813d98998..bf09db7ca9ee 100644 --- a/drivers/dma/edma.c +++ b/drivers/dma/edma.c | |||
@@ -260,6 +260,13 @@ static int edma_terminate_all(struct dma_chan *chan) | |||
260 | */ | 260 | */ |
261 | if (echan->edesc) { | 261 | if (echan->edesc) { |
262 | int cyclic = echan->edesc->cyclic; | 262 | int cyclic = echan->edesc->cyclic; |
263 | |||
264 | /* | ||
265 | * free the running request descriptor | ||
266 | * since it is not in any of the vdesc lists | ||
267 | */ | ||
268 | edma_desc_free(&echan->edesc->vdesc); | ||
269 | |||
263 | echan->edesc = NULL; | 270 | echan->edesc = NULL; |
264 | edma_stop(echan->ch_num); | 271 | edma_stop(echan->ch_num); |
265 | /* Move the cyclic channel back to default queue */ | 272 | /* Move the cyclic channel back to default queue */ |