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.varv...@freescale.com>
Reviewed-by: Phillips Kim-R1AAHA <kim.phill...@freescale.com>
Reviewed-by: Fleming Andrew-AFLEMING <aflem...@freescale.com>
---
 drivers/crypto/caam/desc_constr.h |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/drivers/crypto/caam/desc_constr.h 
b/drivers/crypto/caam/desc_constr.h
index 19501b5..fc4470a 100644
--- a/drivers/crypto/caam/desc_constr.h
+++ b/drivers/crypto/caam/desc_constr.h
@@ -173,18 +173,34 @@ static inline void append_##cmd(u32 *desc, dma_addr_t 
ptr, unsigned int len, \
                                u32 options) \
 { \
        PRINT_POS; \
        append_cmd_ptr(desc, ptr, len, CMD_##op | options); \
 }
 APPEND_CMD_PTR(key, KEY)
 APPEND_CMD_PTR(load, LOAD)
-APPEND_CMD_PTR(store, STORE)
 APPEND_CMD_PTR(fifo_load, FIFO_LOAD)
 APPEND_CMD_PTR(fifo_store, FIFO_STORE)
 
+static inline void append_store(u32 *desc, dma_addr_t ptr, unsigned int len,
+                               u32 options)
+{
+       u32 cmd_src;
+
+       cmd_src = options & LDST_SRCDST_MASK;
+
+       append_cmd(desc, CMD_STORE | options | len);
+
+       /* The following options do not require pointer */
+       if (!(cmd_src == LDST_SRCDST_WORD_DESCBUF_SHARED ||
+             cmd_src == LDST_SRCDST_WORD_DESCBUF_JOB    ||
+             cmd_src == LDST_SRCDST_WORD_DESCBUF_JOB_WE ||
+             cmd_src == LDST_SRCDST_WORD_DESCBUF_SHARED_WE))
+               append_ptr(desc, ptr);
+}
+
 #define APPEND_SEQ_PTR_INTLEN(cmd, op) \
 static inline void append_seq_##cmd##_ptr_intlen(u32 *desc, dma_addr_t ptr, \
                                                 unsigned int len, \
                                                 u32 options) \
 { \
        PRINT_POS; \
        if (options & (SQIN_RTO | SQIN_PRE)) \
-- 
1.7.3.4


--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to