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>
This commit is contained in:
@@ -2288,13 +2288,12 @@ static inline void fill_queue(struct dma_pl330_chan *pch)
|
|||||||
|
|
||||||
/* If already submitted */
|
/* If already submitted */
|
||||||
if (desc->status == BUSY)
|
if (desc->status == BUSY)
|
||||||
break;
|
continue;
|
||||||
|
|
||||||
ret = pl330_submit_req(pch->pl330_chid,
|
ret = pl330_submit_req(pch->pl330_chid,
|
||||||
&desc->req);
|
&desc->req);
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
desc->status = BUSY;
|
desc->status = BUSY;
|
||||||
break;
|
|
||||||
} else if (ret == -EAGAIN) {
|
} else if (ret == -EAGAIN) {
|
||||||
/* QFull or DMAC Dying */
|
/* QFull or DMAC Dying */
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user