ARM: sa11x0: fix build errors from DMA engine API updates
authorRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 30 Mar 2012 10:44:15 +0000 (11:44 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 30 Mar 2012 10:46:20 +0000 (11:46 +0100)
The recent merge of the sa11x0 code into mainline had silent conflicts
with further development of the DMA engine API, leading to build errors
and warnings:

drivers/net/irda/sa1100_ir.c: In function 'sa1100_irda_dma_start':
drivers/net/irda/sa1100_ir.c:151: error: too few arguments to function 'chan->device->device_prep_slave_sg'
drivers/dma/sa11x0-dma.c: In function 'sa11x0_dma_probe':
drivers/dma/sa11x0-dma.c:950: warning: assignment from incompatible pointer type

Fix these.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/dma/sa11x0-dma.c
drivers/net/irda/sa1100_ir.c

index 16a6b48883cf28c131e7143f045b183f140b7cd8..ec78ccef91325c46dfb4098433da5de42007cc32 100644 (file)
@@ -585,7 +585,7 @@ static dma_cookie_t sa11x0_dma_tx_submit(struct dma_async_tx_descriptor *tx)
 
 static struct dma_async_tx_descriptor *sa11x0_dma_prep_slave_sg(
        struct dma_chan *chan, struct scatterlist *sg, unsigned int sglen,
-       enum dma_transfer_direction dir, unsigned long flags)
+       enum dma_transfer_direction dir, unsigned long flags, void *context)
 {
        struct sa11x0_dma_chan *c = to_sa11x0_dma_chan(chan);
        struct sa11x0_dma_desc *txd;
index a0d1913a58d322afb07a23d458709a6ffe6a3eff..e25067552b209327763da3f381a41e85be5e22a2 100644 (file)
@@ -147,7 +147,7 @@ static void sa1100_irda_dma_start(struct sa1100_buf *buf,
        struct dma_async_tx_descriptor *desc;
        struct dma_chan *chan = buf->chan;
 
-       desc = chan->device->device_prep_slave_sg(chan, &buf->sg, 1, dir,
+       desc = dmaengine_prep_slave_sg(chan, &buf->sg, 1, dir,
                        DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
        if (desc) {
                desc->callback = cb;