aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/crypto/caam/desc_constr.h
diff options
context:
space:
mode:
authorAndrei Varvara <andrei.varvara@freescale.com>2013-05-28 03:37:06 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2013-05-28 03:37:06 -0400
commit524f1bd9a3d401cca16bca16582cd71c0abc8bd9 (patch)
treed714e2347fc3b5ae044adf52d778ee248238b23a /drivers/crypto/caam/desc_constr.h
parente2d4ea9444024e38217e4b7e380c6b9f39f9a5f2 (diff)
crypto: caam - Fix STORE command to support overwriting Shared Descriptor's memory
In case Store command is used with overwrite Shared Descriptor feature there is no need for pointer, it is using the address from which the Shared Descriptor was fetched. Signed-off-by: Andrei Varvara <andrei.varvara@freescale.com> Reviewed-by: Phillips Kim-R1AAHA <Kim.Phillips@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/caam/desc_constr.h')
-rw-r--r--drivers/crypto/caam/desc_constr.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/drivers/crypto/caam/desc_constr.h b/drivers/crypto/caam/desc_constr.h
index 19501b548db4..fc4470a2c337 100644
--- a/drivers/crypto/caam/desc_constr.h
+++ b/drivers/crypto/caam/desc_constr.h
@@ -177,10 +177,26 @@ static inline void append_##cmd(u32 *desc, dma_addr_t ptr, unsigned int len, \
177} 177}
178APPEND_CMD_PTR(key, KEY) 178APPEND_CMD_PTR(key, KEY)
179APPEND_CMD_PTR(load, LOAD) 179APPEND_CMD_PTR(load, LOAD)
180APPEND_CMD_PTR(store, STORE)
181APPEND_CMD_PTR(fifo_load, FIFO_LOAD) 180APPEND_CMD_PTR(fifo_load, FIFO_LOAD)
182APPEND_CMD_PTR(fifo_store, FIFO_STORE) 181APPEND_CMD_PTR(fifo_store, FIFO_STORE)
183 182
183static inline void append_store(u32 *desc, dma_addr_t ptr, unsigned int len,
184 u32 options)
185{
186 u32 cmd_src;
187
188 cmd_src = options & LDST_SRCDST_MASK;
189
190 append_cmd(desc, CMD_STORE | options | len);
191
192 /* The following options do not require pointer */
193 if (!(cmd_src == LDST_SRCDST_WORD_DESCBUF_SHARED ||
194 cmd_src == LDST_SRCDST_WORD_DESCBUF_JOB ||
195 cmd_src == LDST_SRCDST_WORD_DESCBUF_JOB_WE ||
196 cmd_src == LDST_SRCDST_WORD_DESCBUF_SHARED_WE))
197 append_ptr(desc, ptr);
198}
199
184#define APPEND_SEQ_PTR_INTLEN(cmd, op) \ 200#define APPEND_SEQ_PTR_INTLEN(cmd, op) \
185static inline void append_seq_##cmd##_ptr_intlen(u32 *desc, dma_addr_t ptr, \ 201static inline void append_seq_##cmd##_ptr_intlen(u32 *desc, dma_addr_t ptr, \
186 unsigned int len, \ 202 unsigned int len, \