diff options
author | Shannon Nelson <shannon.nelson@intel.com> | 2007-10-16 04:27:40 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 12:43:09 -0400 |
commit | 3e037454bcfa4b187e8293d2121bd8c0f5a5c31c (patch) | |
tree | 751a2eace11b280cc1a19873788b778009188be9 /drivers/dma/ioatdma.h | |
parent | 8ab89567da0cea9bae2c1b5dad47b51c424479e4 (diff) |
I/OAT: Add support for MSI and MSI-X
Add support for MSI and MSI-X interrupt handling, including the ability
to choose the desired interrupt method.
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Acked-by: David S. Miller <davem@davemloft.net>
[bunk@kernel.org: drivers/dma/ioat_dma.c: make 3 functions static]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/dma/ioatdma.h')
-rw-r--r-- | drivers/dma/ioatdma.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/dma/ioatdma.h b/drivers/dma/ioatdma.h index 0b8ffbde1e61..2abf0b88a973 100644 --- a/drivers/dma/ioatdma.h +++ b/drivers/dma/ioatdma.h | |||
@@ -28,6 +28,14 @@ | |||
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 | enum ioat_interrupt { | ||
32 | none = 0, | ||
33 | msix_multi_vector = 1, | ||
34 | msix_single_vector = 2, | ||
35 | msi = 3, | ||
36 | intx = 4, | ||
37 | }; | ||
38 | |||
31 | #define IOAT_LOW_COMPLETION_MASK 0xffffffc0 | 39 | #define IOAT_LOW_COMPLETION_MASK 0xffffffc0 |
32 | 40 | ||
33 | /** | 41 | /** |
@@ -46,6 +54,9 @@ struct ioatdma_device { | |||
46 | struct pci_pool *completion_pool; | 54 | struct pci_pool *completion_pool; |
47 | struct dma_device common; | 55 | struct dma_device common; |
48 | u8 version; | 56 | u8 version; |
57 | enum ioat_interrupt irq_mode; | ||
58 | struct msix_entry msix_entries[4]; | ||
59 | struct ioat_dma_chan *idx[4]; | ||
49 | }; | 60 | }; |
50 | 61 | ||
51 | /** | 62 | /** |
@@ -94,6 +105,7 @@ struct ioat_dma_chan { | |||
94 | u32 high; | 105 | u32 high; |
95 | }; | 106 | }; |
96 | } *completion_virt; | 107 | } *completion_virt; |
108 | struct tasklet_struct cleanup_task; | ||
97 | }; | 109 | }; |
98 | 110 | ||
99 | /* wrapper around hardware descriptor format + additional software fields */ | 111 | /* wrapper around hardware descriptor format + additional software fields */ |