Merge branch 'topic/ste_dma40' into for-linus
[cascardo/linux.git] / drivers / dma / ep93xx_dma.c
index 2ffaca2..d37e8dd 100644 (file)
@@ -737,10 +737,10 @@ static void ep93xx_dma_tasklet(unsigned long data)
 {
        struct ep93xx_dma_chan *edmac = (struct ep93xx_dma_chan *)data;
        struct ep93xx_dma_desc *desc, *d;
-       dma_async_tx_callback callback = NULL;
-       void *callback_param = NULL;
+       struct dmaengine_desc_callback cb;
        LIST_HEAD(list);
 
+       memset(&cb, 0, sizeof(cb));
        spin_lock_irq(&edmac->lock);
        /*
         * If dma_terminate_all() was called before we get to run, the active
@@ -755,8 +755,7 @@ static void ep93xx_dma_tasklet(unsigned long data)
                                dma_cookie_complete(&desc->txd);
                        list_splice_init(&edmac->active, &list);
                }
-               callback = desc->txd.callback;
-               callback_param = desc->txd.callback_param;
+               dmaengine_desc_get_callback(&desc->txd, &cb);
        }
        spin_unlock_irq(&edmac->lock);
 
@@ -769,8 +768,7 @@ static void ep93xx_dma_tasklet(unsigned long data)
                ep93xx_dma_desc_put(edmac, desc);
        }
 
-       if (callback)
-               callback(callback_param);
+       dmaengine_desc_callback_invoke(&cb, NULL);
 }
 
 static irqreturn_t ep93xx_dma_interrupt(int irq, void *dev_id)
@@ -1045,11 +1043,11 @@ ep93xx_dma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
 
        first = NULL;
        for_each_sg(sgl, sg, sg_len, i) {
-               size_t sg_len = sg_dma_len(sg);
+               size_t len = sg_dma_len(sg);
 
-               if (sg_len > DMA_MAX_CHAN_BYTES) {
-                       dev_warn(chan2dev(edmac), "too big transfer size %d\n",
-                                sg_len);
+               if (len > DMA_MAX_CHAN_BYTES) {
+                       dev_warn(chan2dev(edmac), "too big transfer size %zu\n",
+                                len);
                        goto fail;
                }
 
@@ -1066,7 +1064,7 @@ ep93xx_dma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
                        desc->src_addr = edmac->runtime_addr;
                        desc->dst_addr = sg_dma_address(sg);
                }
-               desc->size = sg_len;
+               desc->size = len;
 
                if (!first)
                        first = desc;
@@ -1123,7 +1121,7 @@ ep93xx_dma_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t dma_addr,
        }
 
        if (period_len > DMA_MAX_CHAN_BYTES) {
-               dev_warn(chan2dev(edmac), "too big period length %d\n",
+               dev_warn(chan2dev(edmac), "too big period length %zu\n",
                         period_len);
                return NULL;
        }