diff options
author | Dan Williams <dan.j.williams@intel.com> | 2009-09-08 20:42:57 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2009-09-08 20:42:57 -0400 |
commit | b094ad3be564e7cc59cca4ff0256550d3a55dd3b (patch) | |
tree | d69f515b2ee6af2b0f12bb3028d7c7f5b3390794 /drivers/dma/ioat/dma_v2.h | |
parent | e61dacaeb3918cd00cd642e8fb0828324ac59819 (diff) |
ioat3: xor support
ioat3.2 adds xor offload support for up to 8 sources. It can also
perform an xor-zero-sum operation to validate whether all given sources
sum to zero, without writing to a destination. Xor descriptors differ
from memcpy in that one operation may require multiple descriptors
depending on the number of sources. When the number of sources exceeds
5 an extended descriptor is needed. These descriptors need to be
accounted for when updating the DMA_COUNT register.
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/dma/ioat/dma_v2.h')
-rw-r--r-- | drivers/dma/ioat/dma_v2.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/dma/ioat/dma_v2.h b/drivers/dma/ioat/dma_v2.h index fa030f8e1f27..e23027d3dcbd 100644 --- a/drivers/dma/ioat/dma_v2.h +++ b/drivers/dma/ioat/dma_v2.h | |||
@@ -127,6 +127,7 @@ static inline u16 ioat2_xferlen_to_descs(struct ioat2_dma_chan *ioat, size_t len | |||
127 | * @raw: hardware raw (un-typed) descriptor | 127 | * @raw: hardware raw (un-typed) descriptor |
128 | * @txd: the generic software descriptor for all engines | 128 | * @txd: the generic software descriptor for all engines |
129 | * @len: total transaction length for unmap | 129 | * @len: total transaction length for unmap |
130 | * @result: asynchronous result of validate operations | ||
130 | * @id: identifier for debug | 131 | * @id: identifier for debug |
131 | */ | 132 | */ |
132 | 133 | ||
@@ -143,6 +144,7 @@ struct ioat_ring_ent { | |||
143 | }; | 144 | }; |
144 | struct dma_async_tx_descriptor txd; | 145 | struct dma_async_tx_descriptor txd; |
145 | size_t len; | 146 | size_t len; |
147 | enum sum_check_flags *result; | ||
146 | #ifdef DEBUG | 148 | #ifdef DEBUG |
147 | int id; | 149 | int id; |
148 | #endif | 150 | #endif |
@@ -180,5 +182,6 @@ enum dma_status ioat2_is_complete(struct dma_chan *c, dma_cookie_t cookie, | |||
180 | dma_cookie_t *done, dma_cookie_t *used); | 182 | dma_cookie_t *done, dma_cookie_t *used); |
181 | void __ioat2_restart_chan(struct ioat2_dma_chan *ioat); | 183 | void __ioat2_restart_chan(struct ioat2_dma_chan *ioat); |
182 | bool reshape_ring(struct ioat2_dma_chan *ioat, int order); | 184 | bool reshape_ring(struct ioat2_dma_chan *ioat, int order); |
185 | void __ioat2_issue_pending(struct ioat2_dma_chan *ioat); | ||
183 | extern struct kobj_type ioat2_ktype; | 186 | extern struct kobj_type ioat2_ktype; |
184 | #endif /* IOATDMA_V2_H */ | 187 | #endif /* IOATDMA_V2_H */ |