include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit...
[linux-3.10.git] / drivers / dma / ioat / dma_v2.c
index 01ed1cf..b5ae56c 100644 (file)
@@ -27,6 +27,7 @@
 
 #include <linux/init.h>
 #include <linux/module.h>
+#include <linux/slab.h>
 #include <linux/pci.h>
 #include <linux/interrupt.h>
 #include <linux/dmaengine.h>
@@ -199,9 +200,9 @@ static void ioat2_cleanup(struct ioat2_dma_chan *ioat)
        spin_unlock_bh(&chan->cleanup_lock);
 }
 
-void ioat2_cleanup_tasklet(unsigned long data)
+void ioat2_cleanup_event(unsigned long data)
 {
-       struct ioat2_dma_chan *ioat = (void *) data;
+       struct ioat2_dma_chan *ioat = to_ioat2_chan((void *) data);
 
        ioat2_cleanup(ioat);
        writew(IOAT_CHANCTRL_RUN, ioat->base.reg_base + IOAT_CHANCTRL_OFFSET);
@@ -241,7 +242,7 @@ int ioat2_quiesce(struct ioat_chan_common *chan, unsigned long tmo)
        if (is_ioat_active(status) || is_ioat_idle(status))
                ioat_suspend(chan);
        while (is_ioat_active(status) || is_ioat_idle(status)) {
-               if (end && time_after(jiffies, end)) {
+               if (tmo && time_after(jiffies, end)) {
                        err = -ETIMEDOUT;
                        break;
                }
@@ -283,7 +284,7 @@ static void ioat2_restart_channel(struct ioat2_dma_chan *ioat)
 
 void ioat2_timer_event(unsigned long data)
 {
-       struct ioat2_dma_chan *ioat = (void *) data;
+       struct ioat2_dma_chan *ioat = to_ioat2_chan((void *) data);
        struct ioat_chan_common *chan = &ioat->base;
 
        spin_lock_bh(&chan->cleanup_lock);
@@ -389,10 +390,7 @@ int ioat2_enumerate_channels(struct ioatdma_device *device)
                if (!ioat)
                        break;
 
-               ioat_init_channel(device, &ioat->base, i,
-                                 device->timer_fn,
-                                 device->cleanup_tasklet,
-                                 (unsigned long) ioat);
+               ioat_init_channel(device, &ioat->base, i);
                ioat->xfercap_log = xfercap_log;
                spin_lock_init(&ioat->ring_lock);
                if (device->reset_hw(&ioat->base)) {
@@ -692,7 +690,7 @@ int ioat2_alloc_and_lock(u16 *idx, struct ioat2_dma_chan *ioat, int num_descs)
 
                        mod_timer(&chan->timer, jiffies + COMPLETION_TIMEOUT);
                        spin_unlock_bh(&chan->cleanup_lock);
-                       device->timer_fn((unsigned long) ioat);
+                       device->timer_fn((unsigned long) &chan->common);
                } else
                        spin_unlock_bh(&chan->cleanup_lock);
                return -ENOMEM;
@@ -776,7 +774,7 @@ void ioat2_free_chan_resources(struct dma_chan *c)
 
        tasklet_disable(&chan->cleanup_task);
        del_timer_sync(&chan->timer);
-       device->cleanup_tasklet((unsigned long) ioat);
+       device->cleanup_fn((unsigned long) c);
        device->reset_hw(chan);
 
        spin_lock_bh(&ioat->ring_lock);
@@ -809,21 +807,6 @@ void ioat2_free_chan_resources(struct dma_chan *c)
        ioat->dmacount = 0;
 }
 
-enum dma_status
-ioat2_is_complete(struct dma_chan *c, dma_cookie_t cookie,
-                    dma_cookie_t *done, dma_cookie_t *used)
-{
-       struct ioat2_dma_chan *ioat = to_ioat2_chan(c);
-       struct ioatdma_device *device = ioat->base.device;
-
-       if (ioat_is_complete(c, cookie, done, used) == DMA_SUCCESS)
-               return DMA_SUCCESS;
-
-       device->cleanup_tasklet((unsigned long) ioat);
-
-       return ioat_is_complete(c, cookie, done, used);
-}
-
 static ssize_t ring_size_show(struct dma_chan *c, char *page)
 {
        struct ioat2_dma_chan *ioat = to_ioat2_chan(c);
@@ -864,7 +847,7 @@ int __devinit ioat2_dma_probe(struct ioatdma_device *device, int dca)
 
        device->enumerate_channels = ioat2_enumerate_channels;
        device->reset_hw = ioat2_reset_hw;
-       device->cleanup_tasklet = ioat2_cleanup_tasklet;
+       device->cleanup_fn = ioat2_cleanup_event;
        device->timer_fn = ioat2_timer_event;
        device->self_test = ioat_dma_self_test;
        dma = &device->common;
@@ -872,7 +855,7 @@ int __devinit ioat2_dma_probe(struct ioatdma_device *device, int dca)
        dma->device_issue_pending = ioat2_issue_pending;
        dma->device_alloc_chan_resources = ioat2_alloc_chan_resources;
        dma->device_free_chan_resources = ioat2_free_chan_resources;
-       dma->device_is_tx_complete = ioat2_is_complete;
+       dma->device_is_tx_complete = ioat_is_dma_complete;
 
        err = ioat_probe(device);
        if (err)