spin_unlock_irqrestore(&cohc->lock, flags);
- chan->device->device_control(chan, DMA_TERMINATE_ALL);
+ chan->device->device_control(chan, DMA_TERMINATE_ALL, 0);
}
ret = dma_async_is_complete(cookie, last_complete, last_used);
- if (txstate) {
- txstate->last = last_complete;
- txstate->used = last_used;
- txstate->residue = coh901318_get_bytes_left(chan);
- }
-
+ dma_set_tx_state(txstate, last_complete, last_used,
+ coh901318_get_bytes_left(chan));
if (ret == DMA_IN_PROGRESS && cohc->stopped)
ret = DMA_PAUSED;
}
static int
-coh901318_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd)
+coh901318_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd,
+ unsigned long arg)
{
unsigned long flags;
struct coh901318_chan *cohc = to_coh901318_chan(chan);