mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-07 07:08:07 +00:00
Merge branch 'dmaengine-shawn' into dmaengine
This commit is contained in:
commit
60f1df5dc6
1 changed files with 6 additions and 10 deletions
|
@ -450,7 +450,7 @@ static void sdma_handle_channel_loop(struct sdma_channel *sdmac)
|
||||||
if (bd->mode.status & BD_RROR)
|
if (bd->mode.status & BD_RROR)
|
||||||
sdmac->status = DMA_ERROR;
|
sdmac->status = DMA_ERROR;
|
||||||
else
|
else
|
||||||
sdmac->status = DMA_SUCCESS;
|
sdmac->status = DMA_IN_PROGRESS;
|
||||||
|
|
||||||
bd->mode.status |= BD_DONE;
|
bd->mode.status |= BD_DONE;
|
||||||
sdmac->buf_tail++;
|
sdmac->buf_tail++;
|
||||||
|
@ -942,15 +942,12 @@ static struct dma_async_tx_descriptor *sdma_prep_slave_sg(
|
||||||
|
|
||||||
param = BD_DONE | BD_EXTD | BD_CONT;
|
param = BD_DONE | BD_EXTD | BD_CONT;
|
||||||
|
|
||||||
if (sdmac->flags & IMX_DMA_SG_LOOP) {
|
if (i + 1 == sg_len) {
|
||||||
param |= BD_INTR;
|
param |= BD_INTR;
|
||||||
if (i + 1 == sg_len)
|
param |= BD_LAST;
|
||||||
param |= BD_WRAP;
|
param &= ~BD_CONT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i + 1 == sg_len)
|
|
||||||
param |= BD_INTR;
|
|
||||||
|
|
||||||
dev_dbg(sdma->dev, "entry %d: count: %d dma: 0x%08x %s%s\n",
|
dev_dbg(sdma->dev, "entry %d: count: %d dma: 0x%08x %s%s\n",
|
||||||
i, count, sg->dma_address,
|
i, count, sg->dma_address,
|
||||||
param & BD_WRAP ? "wrap" : "",
|
param & BD_WRAP ? "wrap" : "",
|
||||||
|
@ -964,6 +961,7 @@ static struct dma_async_tx_descriptor *sdma_prep_slave_sg(
|
||||||
|
|
||||||
return &sdmac->desc;
|
return &sdmac->desc;
|
||||||
err_out:
|
err_out:
|
||||||
|
sdmac->status = DMA_ERROR;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1077,14 +1075,12 @@ static enum dma_status sdma_tx_status(struct dma_chan *chan,
|
||||||
{
|
{
|
||||||
struct sdma_channel *sdmac = to_sdma_chan(chan);
|
struct sdma_channel *sdmac = to_sdma_chan(chan);
|
||||||
dma_cookie_t last_used;
|
dma_cookie_t last_used;
|
||||||
enum dma_status ret;
|
|
||||||
|
|
||||||
last_used = chan->cookie;
|
last_used = chan->cookie;
|
||||||
|
|
||||||
ret = dma_async_is_complete(cookie, sdmac->last_completed, last_used);
|
|
||||||
dma_set_tx_state(txstate, sdmac->last_completed, last_used, 0);
|
dma_set_tx_state(txstate, sdmac->last_completed, last_used, 0);
|
||||||
|
|
||||||
return ret;
|
return sdmac->status;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sdma_issue_pending(struct dma_chan *chan)
|
static void sdma_issue_pending(struct dma_chan *chan)
|
||||||
|
|
Loading…
Add table
Reference in a new issue