|
@@ -561,8 +561,7 @@ static struct dma_async_tx_descriptor *td_prep_slave_sg(struct dma_chan *chan,
|
|
|
return &td_desc->txd;
|
|
|
}
|
|
|
|
|
|
-static int td_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd,
|
|
|
- unsigned long arg)
|
|
|
+static int td_terminate_all(struct dma_chan *chan)
|
|
|
{
|
|
|
struct timb_dma_chan *td_chan =
|
|
|
container_of(chan, struct timb_dma_chan, chan);
|
|
@@ -570,9 +569,6 @@ static int td_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd,
|
|
|
|
|
|
dev_dbg(chan2dev(chan), "%s: Entry\n", __func__);
|
|
|
|
|
|
- if (cmd != DMA_TERMINATE_ALL)
|
|
|
- return -ENXIO;
|
|
|
-
|
|
|
/* first the easy part, put the queue into the free list */
|
|
|
spin_lock_bh(&td_chan->lock);
|
|
|
list_for_each_entry_safe(td_desc, _td_desc, &td_chan->queue,
|
|
@@ -697,7 +693,7 @@ static int td_probe(struct platform_device *pdev)
|
|
|
dma_cap_set(DMA_SLAVE, td->dma.cap_mask);
|
|
|
dma_cap_set(DMA_PRIVATE, td->dma.cap_mask);
|
|
|
td->dma.device_prep_slave_sg = td_prep_slave_sg;
|
|
|
- td->dma.device_control = td_control;
|
|
|
+ td->dma.device_terminate_all = td_terminate_all;
|
|
|
|
|
|
td->dma.dev = &pdev->dev;
|
|
|
|