aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma/pl330.c
diff options
context:
space:
mode:
authorJassi Brar <jaswinder.singh@linaro.org>2013-02-13 05:43:14 -0500
committerVinod Koul <vinod.koul@intel.com>2013-04-15 00:21:15 -0400
commit30fb980b99d3896bd891e56fec22191d40007efc (patch)
treedd52a62bad0a1d7fab1020fe2b3b05acce9e30a8 /drivers/dma/pl330.c
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>
Diffstat (limited to 'drivers/dma/pl330.c')
-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)
2288 2288
2289 /* If already submitted */ 2289 /* If already submitted */
2290 if (desc->status == BUSY) 2290 if (desc->status == BUSY)
2291 break; 2291 continue;
2292 2292
2293 ret = pl330_submit_req(pch->pl330_chid, 2293 ret = pl330_submit_req(pch->pl330_chid,
2294 &desc->req); 2294 &desc->req);
2295 if (!ret) { 2295 if (!ret) {
2296 desc->status = BUSY; 2296 desc->status = BUSY;
2297 break;
2298 } else if (ret == -EAGAIN) { 2297 } else if (ret == -EAGAIN) {
2299 /* QFull or DMAC Dying */ 2298 /* QFull or DMAC Dying */
2300 break; 2299 break;