DMAENGINE: extend the control command to include an arg
This adds an argument to the DMAengine control function, so that we can later provide control commands that need some external data passed in through an argument akin to the ioctl() operation prototype. [dan.j.williams@intel.com: fix up some missed conversions] Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Bu işleme şunda yer alıyor:

işlemeyi yapan:
Dan Williams

ebeveyn
4aed79b281
işleme
058276303d
@@ -159,7 +159,7 @@ static void txx9aclc_dma_tasklet(unsigned long data)
|
||||
void __iomem *base = drvdata->base;
|
||||
|
||||
spin_unlock_irqrestore(&dmadata->dma_lock, flags);
|
||||
chan->device->device_control(chan, DMA_TERMINATE_ALL);
|
||||
chan->device->device_control(chan, DMA_TERMINATE_ALL, 0);
|
||||
/* first time */
|
||||
for (i = 0; i < NR_DMA_CHAIN; i++) {
|
||||
desc = txx9aclc_dma_submit(dmadata,
|
||||
@@ -267,7 +267,7 @@ static int txx9aclc_pcm_close(struct snd_pcm_substream *substream)
|
||||
struct dma_chan *chan = dmadata->dma_chan;
|
||||
|
||||
dmadata->frag_count = -1;
|
||||
chan->device->device_control(chan, DMA_TERMINATE_ALL);
|
||||
chan->device->device_control(chan, DMA_TERMINATE_ALL, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -396,7 +396,8 @@ static int txx9aclc_pcm_remove(struct platform_device *pdev)
|
||||
struct dma_chan *chan = dmadata->dma_chan;
|
||||
if (chan) {
|
||||
dmadata->frag_count = -1;
|
||||
chan->device->device_control(chan, DMA_TERMINATE_ALL);
|
||||
chan->device->device_control(chan,
|
||||
DMA_TERMINATE_ALL, 0);
|
||||
dma_release_channel(chan);
|
||||
}
|
||||
dev->dmadata[i].dma_chan = NULL;
|
||||
|
Yeni konuda referans
Bir kullanıcı engelle