aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/include/asm/hardware/iop_adma.h
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2009-08-28 14:32:04 -0700
committerDan Williams <dan.j.williams@intel.com>2009-08-29 19:12:39 -0700
commit7bf649aee8ac93ecc280f8745dcf8ec19d7b9fb1 (patch)
treeb35282323d278afb16c18a42c8c0db34508cef6c /arch/arm/include/asm/hardware/iop_adma.h
parentiop-adma: fix lockdep false positive (diff)
downloadlinux-dev-7bf649aee8ac93ecc280f8745dcf8ec19d7b9fb1.tar.xz
linux-dev-7bf649aee8ac93ecc280f8745dcf8ec19d7b9fb1.zip
iop-adma: P+Q support for iop13xx adma engines
iop33x support is not included because that engine is a bit more awkward to handle in that it can either be in xor mode or pq mode. The dmaengine/async_tx layers currently only comprehend static capabilities. Note iop13xx does not support hardware PQ continuation so the driver must handle the DMA_PREP_CONTINUE flag for operations across > 16 sources. From the comment for dma_maxpq: /* When an engine does not support native continuation we need 3 extra * source slots to reuse P and Q with the following coefficients: * 1/ {00} * P : remove P from Q', but use it as a source for P' * 2/ {01} * Q : use Q to continue Q' calculation * 3/ {00} * Q : subtract Q from P' to cancel (2) */ Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'arch/arm/include/asm/hardware/iop_adma.h')
-rw-r--r--arch/arm/include/asm/hardware/iop_adma.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm/include/asm/hardware/iop_adma.h b/arch/arm/include/asm/hardware/iop_adma.h
index 385c6e8cbbd2..bbe8a0475cad 100644
--- a/arch/arm/include/asm/hardware/iop_adma.h
+++ b/arch/arm/include/asm/hardware/iop_adma.h
@@ -106,6 +106,7 @@ struct iop_adma_desc_slot {
union {
u32 *xor_check_result;
u32 *crc32_result;
+ u32 *pq_check_result;
};
};