mirror of
https://github.com/torvalds/linux.git
synced 2024-11-06 20:21:57 +00:00
dmaengine: pl330: fix return status on pending transfers
The pl330_tx_status() function returns the desc->status if the dma_cookie_status() call does indicate the cookie completed, however the desc->status is not look directly compatible. Sparse throws the following warning: pl330.c:2262:35: warning: mixing different enum types pl330.c:2262:35: int enum desc_status versus pl330.c:2262:35: int enum dma_status Attempt to fix this by adding a switch statement to turn the desc->status into a dma_status. Note, this has only been tested with the dmatest suite. Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> -- Vinod Koul <vinod.koul@intel.com> Dan Williams <dan.j.williams@intel.com> DMA List <dmaengine@vger.kernel.org> Maxime Ripard <maxime.ripard@free-electrons.com> Jassi Brar <jassisinghbrar@gmail.com> Liviu Dudau <Liviu.Dudau@arm.com> Linux ARM Kernel <linux-arm-kernel@lists.infradead.org> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
This commit is contained in:
parent
5503aed811
commit
75967b788c
@ -2259,7 +2259,17 @@ pl330_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
|
||||
transferred = 0;
|
||||
residual += desc->bytes_requested - transferred;
|
||||
if (desc->txd.cookie == cookie) {
|
||||
ret = desc->status;
|
||||
switch (desc->status) {
|
||||
case DONE:
|
||||
ret = DMA_COMPLETE;
|
||||
break;
|
||||
case PREP:
|
||||
case BUSY:
|
||||
ret = DMA_IN_PROGRESS;
|
||||
break;
|
||||
default:
|
||||
WARN_ON(1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (desc->last)
|
||||
|
Loading…
Reference in New Issue
Block a user