diff options
author | Vinod Koul <vinod.koul@intel.com> | 2013-11-16 01:24:17 -0500 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2013-11-16 01:32:36 -0500 |
commit | df12a3178d340319b1955be6b973a4eb84aff754 (patch) | |
tree | 2b9c68f8a6c299d1e5a4026c60117b5c00d46008 /arch/arm | |
parent | 2f986ec6fa57a5dcf77f19f5f0d44b1f680a100f (diff) | |
parent | 82a1402eaee5dab1f3ab2d5aa4c316451374c5af (diff) |
Merge commit 'dmaengine-3.13-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/dmaengine
Pull dmaengine changes from Dan
1/ Bartlomiej and Dan finalized a rework of the dma address unmap
implementation.
2/ In the course of testing 1/ a collection of enhancements to dmatest
fell out. Notably basic performance statistics, and fixed / enhanced
test control through new module parameters 'run', 'wait', 'noverify',
and 'verbose'. Thanks to Andriy and Linus for their review.
3/ Testing the raid related corner cases of 1/ triggered bugs in the
recently added 16-source operation support in the ioatdma driver.
4/ Some minor fixes / cleanups to mv_xor and ioatdma.
Conflicts:
drivers/dma/dmatest.c
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/include/asm/hardware/iop3xx-adma.h | 30 | ||||
-rw-r--r-- | arch/arm/include/asm/hardware/iop_adma.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-iop13xx/include/mach/adma.h | 26 |
3 files changed, 0 insertions, 60 deletions
diff --git a/arch/arm/include/asm/hardware/iop3xx-adma.h b/arch/arm/include/asm/hardware/iop3xx-adma.h index 9b28f1243bdc..240b29ef17db 100644 --- a/arch/arm/include/asm/hardware/iop3xx-adma.h +++ b/arch/arm/include/asm/hardware/iop3xx-adma.h | |||
@@ -393,36 +393,6 @@ static inline int iop_chan_zero_sum_slot_count(size_t len, int src_cnt, | |||
393 | return slot_cnt; | 393 | return slot_cnt; |
394 | } | 394 | } |
395 | 395 | ||
396 | static inline int iop_desc_is_pq(struct iop_adma_desc_slot *desc) | ||
397 | { | ||
398 | return 0; | ||
399 | } | ||
400 | |||
401 | static inline u32 iop_desc_get_dest_addr(struct iop_adma_desc_slot *desc, | ||
402 | struct iop_adma_chan *chan) | ||
403 | { | ||
404 | union iop3xx_desc hw_desc = { .ptr = desc->hw_desc, }; | ||
405 | |||
406 | switch (chan->device->id) { | ||
407 | case DMA0_ID: | ||
408 | case DMA1_ID: | ||
409 | return hw_desc.dma->dest_addr; | ||
410 | case AAU_ID: | ||
411 | return hw_desc.aau->dest_addr; | ||
412 | default: | ||
413 | BUG(); | ||
414 | } | ||
415 | return 0; | ||
416 | } | ||
417 | |||
418 | |||
419 | static inline u32 iop_desc_get_qdest_addr(struct iop_adma_desc_slot *desc, | ||
420 | struct iop_adma_chan *chan) | ||
421 | { | ||
422 | BUG(); | ||
423 | return 0; | ||
424 | } | ||
425 | |||
426 | static inline u32 iop_desc_get_byte_count(struct iop_adma_desc_slot *desc, | 396 | static inline u32 iop_desc_get_byte_count(struct iop_adma_desc_slot *desc, |
427 | struct iop_adma_chan *chan) | 397 | struct iop_adma_chan *chan) |
428 | { | 398 | { |
diff --git a/arch/arm/include/asm/hardware/iop_adma.h b/arch/arm/include/asm/hardware/iop_adma.h index 122f86d8c991..250760e08103 100644 --- a/arch/arm/include/asm/hardware/iop_adma.h +++ b/arch/arm/include/asm/hardware/iop_adma.h | |||
@@ -82,8 +82,6 @@ struct iop_adma_chan { | |||
82 | * @slot_cnt: total slots used in an transaction (group of operations) | 82 | * @slot_cnt: total slots used in an transaction (group of operations) |
83 | * @slots_per_op: number of slots per operation | 83 | * @slots_per_op: number of slots per operation |
84 | * @idx: pool index | 84 | * @idx: pool index |
85 | * @unmap_src_cnt: number of xor sources | ||
86 | * @unmap_len: transaction bytecount | ||
87 | * @tx_list: list of descriptors that are associated with one operation | 85 | * @tx_list: list of descriptors that are associated with one operation |
88 | * @async_tx: support for the async_tx api | 86 | * @async_tx: support for the async_tx api |
89 | * @group_list: list of slots that make up a multi-descriptor transaction | 87 | * @group_list: list of slots that make up a multi-descriptor transaction |
@@ -99,8 +97,6 @@ struct iop_adma_desc_slot { | |||
99 | u16 slot_cnt; | 97 | u16 slot_cnt; |
100 | u16 slots_per_op; | 98 | u16 slots_per_op; |
101 | u16 idx; | 99 | u16 idx; |
102 | u16 unmap_src_cnt; | ||
103 | size_t unmap_len; | ||
104 | struct list_head tx_list; | 100 | struct list_head tx_list; |
105 | struct dma_async_tx_descriptor async_tx; | 101 | struct dma_async_tx_descriptor async_tx; |
106 | union { | 102 | union { |
diff --git a/arch/arm/mach-iop13xx/include/mach/adma.h b/arch/arm/mach-iop13xx/include/mach/adma.h index 6d3782d85a9f..a86fd0ed7757 100644 --- a/arch/arm/mach-iop13xx/include/mach/adma.h +++ b/arch/arm/mach-iop13xx/include/mach/adma.h | |||
@@ -218,20 +218,6 @@ iop_chan_xor_slot_count(size_t len, int src_cnt, int *slots_per_op) | |||
218 | #define iop_chan_pq_slot_count iop_chan_xor_slot_count | 218 | #define iop_chan_pq_slot_count iop_chan_xor_slot_count |
219 | #define iop_chan_pq_zero_sum_slot_count iop_chan_xor_slot_count | 219 | #define iop_chan_pq_zero_sum_slot_count iop_chan_xor_slot_count |
220 | 220 | ||
221 | static inline u32 iop_desc_get_dest_addr(struct iop_adma_desc_slot *desc, | ||
222 | struct iop_adma_chan *chan) | ||
223 | { | ||
224 | struct iop13xx_adma_desc_hw *hw_desc = desc->hw_desc; | ||
225 | return hw_desc->dest_addr; | ||
226 | } | ||
227 | |||
228 | static inline u32 iop_desc_get_qdest_addr(struct iop_adma_desc_slot *desc, | ||
229 | struct iop_adma_chan *chan) | ||
230 | { | ||
231 | struct iop13xx_adma_desc_hw *hw_desc = desc->hw_desc; | ||
232 | return hw_desc->q_dest_addr; | ||
233 | } | ||
234 | |||
235 | static inline u32 iop_desc_get_byte_count(struct iop_adma_desc_slot *desc, | 221 | static inline u32 iop_desc_get_byte_count(struct iop_adma_desc_slot *desc, |
236 | struct iop_adma_chan *chan) | 222 | struct iop_adma_chan *chan) |
237 | { | 223 | { |
@@ -350,18 +336,6 @@ iop_desc_init_pq(struct iop_adma_desc_slot *desc, int src_cnt, | |||
350 | hw_desc->desc_ctrl = u_desc_ctrl.value; | 336 | hw_desc->desc_ctrl = u_desc_ctrl.value; |
351 | } | 337 | } |
352 | 338 | ||
353 | static inline int iop_desc_is_pq(struct iop_adma_desc_slot *desc) | ||
354 | { | ||
355 | struct iop13xx_adma_desc_hw *hw_desc = desc->hw_desc; | ||
356 | union { | ||
357 | u32 value; | ||
358 | struct iop13xx_adma_desc_ctrl field; | ||
359 | } u_desc_ctrl; | ||
360 | |||
361 | u_desc_ctrl.value = hw_desc->desc_ctrl; | ||
362 | return u_desc_ctrl.field.pq_xfer_en; | ||
363 | } | ||
364 | |||
365 | static inline void | 339 | static inline void |
366 | iop_desc_init_pq_zero_sum(struct iop_adma_desc_slot *desc, int src_cnt, | 340 | iop_desc_init_pq_zero_sum(struct iop_adma_desc_slot *desc, int src_cnt, |
367 | unsigned long flags) | 341 | unsigned long flags) |