aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma/ioatdma.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/dma/ioatdma.h')
-rw-r--r--drivers/dma/ioatdma.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/dma/ioatdma.h b/drivers/dma/ioatdma.h
index f2c7fedbf009..c6ec933f9895 100644
--- a/drivers/dma/ioatdma.h
+++ b/drivers/dma/ioatdma.h
@@ -28,7 +28,7 @@
28#include <linux/cache.h> 28#include <linux/cache.h>
29#include <linux/pci_ids.h> 29#include <linux/pci_ids.h>
30 30
31#define IOAT_DMA_VERSION "2.04" 31#define IOAT_DMA_VERSION "2.18"
32 32
33enum ioat_interrupt { 33enum ioat_interrupt {
34 none = 0, 34 none = 0,
@@ -40,6 +40,7 @@ enum ioat_interrupt {
40 40
41#define IOAT_LOW_COMPLETION_MASK 0xffffffc0 41#define IOAT_LOW_COMPLETION_MASK 0xffffffc0
42#define IOAT_DMA_DCA_ANY_CPU ~0 42#define IOAT_DMA_DCA_ANY_CPU ~0
43#define IOAT_WATCHDOG_PERIOD (2 * HZ)
43 44
44 45
45/** 46/**
@@ -62,6 +63,7 @@ struct ioatdma_device {
62 struct dma_device common; 63 struct dma_device common;
63 u8 version; 64 u8 version;
64 enum ioat_interrupt irq_mode; 65 enum ioat_interrupt irq_mode;
66 struct delayed_work work;
65 struct msix_entry msix_entries[4]; 67 struct msix_entry msix_entries[4];
66 struct ioat_dma_chan *idx[4]; 68 struct ioat_dma_chan *idx[4];
67}; 69};
@@ -75,6 +77,7 @@ struct ioat_dma_chan {
75 77
76 dma_cookie_t completed_cookie; 78 dma_cookie_t completed_cookie;
77 unsigned long last_completion; 79 unsigned long last_completion;
80 unsigned long last_completion_time;
78 81
79 size_t xfercap; /* XFERCAP register value expanded out */ 82 size_t xfercap; /* XFERCAP register value expanded out */
80 83
@@ -82,6 +85,10 @@ struct ioat_dma_chan {
82 spinlock_t desc_lock; 85 spinlock_t desc_lock;
83 struct list_head free_desc; 86 struct list_head free_desc;
84 struct list_head used_desc; 87 struct list_head used_desc;
88 unsigned long watchdog_completion;
89 int watchdog_tcp_cookie;
90 u32 watchdog_last_tcp_cookie;
91 struct delayed_work work;
85 92
86 int pending; 93 int pending;
87 int dmacount; 94 int dmacount;
@@ -98,6 +105,7 @@ struct ioat_dma_chan {
98 u32 high; 105 u32 high;
99 }; 106 };
100 } *completion_virt; 107 } *completion_virt;
108 unsigned long last_compl_desc_addr_hw;
101 struct tasklet_struct cleanup_task; 109 struct tasklet_struct cleanup_task;
102}; 110};
103 111