]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/dma/dmaengine.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw
[karo-tx-linux.git] / drivers / dma / dmaengine.c
index 29965231b9127e6e9e658997f26b72ffb69c4d3c..d6dc70fd75270c2522823f798235c8ba703f1ce7 100644 (file)
@@ -357,12 +357,11 @@ int dma_async_device_register(struct dma_device *device)
                !device->device_prep_dma_zero_sum);
        BUG_ON(dma_has_cap(DMA_MEMSET, device->cap_mask) &&
                !device->device_prep_dma_memset);
-       BUG_ON(dma_has_cap(DMA_ZERO_SUM, device->cap_mask) &&
+       BUG_ON(dma_has_cap(DMA_INTERRUPT, device->cap_mask) &&
                !device->device_prep_dma_interrupt);
 
        BUG_ON(!device->device_alloc_chan_resources);
        BUG_ON(!device->device_free_chan_resources);
-       BUG_ON(!device->device_dependency_added);
        BUG_ON(!device->device_is_tx_complete);
        BUG_ON(!device->device_issue_pending);
        BUG_ON(!device->dev);
@@ -479,7 +478,8 @@ dma_async_memcpy_buf_to_buf(struct dma_chan *chan, void *dest,
 
        dma_src = dma_map_single(dev->dev, src, len, DMA_TO_DEVICE);
        dma_dest = dma_map_single(dev->dev, dest, len, DMA_FROM_DEVICE);
-       tx = dev->device_prep_dma_memcpy(chan, dma_dest, dma_src, len, 0);
+       tx = dev->device_prep_dma_memcpy(chan, dma_dest, dma_src, len,
+                                        DMA_CTRL_ACK);
 
        if (!tx) {
                dma_unmap_single(dev->dev, dma_src, len, DMA_TO_DEVICE);
@@ -487,7 +487,6 @@ dma_async_memcpy_buf_to_buf(struct dma_chan *chan, void *dest,
                return -ENOMEM;
        }
 
-       tx->ack = 1;
        tx->callback = NULL;
        cookie = tx->tx_submit(tx);
 
@@ -525,7 +524,8 @@ dma_async_memcpy_buf_to_pg(struct dma_chan *chan, struct page *page,
 
        dma_src = dma_map_single(dev->dev, kdata, len, DMA_TO_DEVICE);
        dma_dest = dma_map_page(dev->dev, page, offset, len, DMA_FROM_DEVICE);
-       tx = dev->device_prep_dma_memcpy(chan, dma_dest, dma_src, len, 0);
+       tx = dev->device_prep_dma_memcpy(chan, dma_dest, dma_src, len,
+                                        DMA_CTRL_ACK);
 
        if (!tx) {
                dma_unmap_single(dev->dev, dma_src, len, DMA_TO_DEVICE);
@@ -533,7 +533,6 @@ dma_async_memcpy_buf_to_pg(struct dma_chan *chan, struct page *page,
                return -ENOMEM;
        }
 
-       tx->ack = 1;
        tx->callback = NULL;
        cookie = tx->tx_submit(tx);
 
@@ -574,7 +573,8 @@ dma_async_memcpy_pg_to_pg(struct dma_chan *chan, struct page *dest_pg,
        dma_src = dma_map_page(dev->dev, src_pg, src_off, len, DMA_TO_DEVICE);
        dma_dest = dma_map_page(dev->dev, dest_pg, dest_off, len,
                                DMA_FROM_DEVICE);
-       tx = dev->device_prep_dma_memcpy(chan, dma_dest, dma_src, len, 0);
+       tx = dev->device_prep_dma_memcpy(chan, dma_dest, dma_src, len,
+                                        DMA_CTRL_ACK);
 
        if (!tx) {
                dma_unmap_page(dev->dev, dma_src, len, DMA_TO_DEVICE);
@@ -582,7 +582,6 @@ dma_async_memcpy_pg_to_pg(struct dma_chan *chan, struct page *dest_pg,
                return -ENOMEM;
        }
 
-       tx->ack = 1;
        tx->callback = NULL;
        cookie = tx->tx_submit(tx);
 
@@ -600,8 +599,6 @@ void dma_async_tx_descriptor_init(struct dma_async_tx_descriptor *tx,
 {
        tx->chan = chan;
        spin_lock_init(&tx->lock);
-       INIT_LIST_HEAD(&tx->depend_node);
-       INIT_LIST_HEAD(&tx->depend_list);
 }
 EXPORT_SYMBOL(dma_async_tx_descriptor_init);