]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/dma/mmp_pdma.c
mtd: blkdevs: Fix mtd block write failure
[karo-tx-linux.git] / drivers / dma / mmp_pdma.c
index f4b25fb0d0402668bafad206b4576bcf808005cb..eb3a1f42ab065793fbd4c30197b7cbc2300ec7f7 100644 (file)
@@ -864,19 +864,15 @@ static void dma_do_tasklet(unsigned long data)
        struct mmp_pdma_desc_sw *desc, *_desc;
        LIST_HEAD(chain_cleanup);
        unsigned long flags;
+       struct dmaengine_desc_callback cb;
 
        if (chan->cyclic_first) {
-               dma_async_tx_callback cb = NULL;
-               void *cb_data = NULL;
-
                spin_lock_irqsave(&chan->desc_lock, flags);
                desc = chan->cyclic_first;
-               cb = desc->async_tx.callback;
-               cb_data = desc->async_tx.callback_param;
+               dmaengine_desc_get_callback(&desc->async_tx, &cb);
                spin_unlock_irqrestore(&chan->desc_lock, flags);
 
-               if (cb)
-                       cb(cb_data);
+               dmaengine_desc_callback_invoke(&cb, NULL);
 
                return;
        }
@@ -921,8 +917,8 @@ static void dma_do_tasklet(unsigned long data)
                /* Remove from the list of transactions */
                list_del(&desc->node);
                /* Run the link descriptor callback function */
-               if (txd->callback)
-                       txd->callback(txd->callback_param);
+               dmaengine_desc_get_callback(txd, &cb);
+               dmaengine_desc_callback_invoke(&cb, NULL);
 
                dma_pool_free(chan->desc_pool, desc, txd->phys);
        }