summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJassi Brar <jaswinder.singh@linaro.org>2013-02-13 16:13:14 +0530
committerVinod Koul <vinod.koul@intel.com>2013-04-15 09:51:15 +0530
commit30fb980b99d3896bd891e56fec22191d40007efc (patch)
treedd52a62bad0a1d7fab1020fe2b3b05acce9e30a8
parent41ef2d5678d83af030125550329b6ae8b74618fa (diff)
DMA: PL330: allow submitting 2 requests at a time
Fix the logic to allow mc programming of second transfer after first has been done, by removing immediate return upon success and iterating until we detect QFull or DMAC dying. Reported-by: Alvaro Moran <dirac3000@gmail.com> Tested-by: Alvaro Moran <dirac3000@gmail.com> Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
-rw-r--r--drivers/dma/pl330.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c
index 5dbc5946c4c3..31619c08a760 100644
--- a/drivers/dma/pl330.c
+++ b/drivers/dma/pl330.c
@@ -2288,13 +2288,12 @@ static inline void fill_queue(struct dma_pl330_chan *pch)
/* If already submitted */
if (desc->status == BUSY)
- break;
+ continue;
ret = pl330_submit_req(pch->pl330_chid,
&desc->req);
if (!ret) {
desc->status = BUSY;
- break;
} else if (ret == -EAGAIN) {
/* QFull or DMAC Dying */
break;