aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma/ioat/dma_v2.h
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2009-09-08 20:42:57 -0400
committerDan Williams <dan.j.williams@intel.com>2009-09-08 20:42:57 -0400
commitb094ad3be564e7cc59cca4ff0256550d3a55dd3b (patch)
treed69f515b2ee6af2b0f12bb3028d7c7f5b3390794 /drivers/dma/ioat/dma_v2.h
parente61dacaeb3918cd00cd642e8fb0828324ac59819 (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.h3
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);
181void __ioat2_restart_chan(struct ioat2_dma_chan *ioat); 183void __ioat2_restart_chan(struct ioat2_dma_chan *ioat);
182bool reshape_ring(struct ioat2_dma_chan *ioat, int order); 184bool reshape_ring(struct ioat2_dma_chan *ioat, int order);
185void __ioat2_issue_pending(struct ioat2_dma_chan *ioat);
183extern struct kobj_type ioat2_ktype; 186extern struct kobj_type ioat2_ktype;
184#endif /* IOATDMA_V2_H */ 187#endif /* IOATDMA_V2_H */