summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/crypto/caam/desc.h1
-rw-r--r--drivers/crypto/caam/sg_sw_qm.h8
-rw-r--r--drivers/crypto/caam/sg_sw_sec4.h8
-rw-r--r--include/linux/fsl_qman.h1
4 files changed, 10 insertions, 8 deletions
diff --git a/drivers/crypto/caam/desc.h b/drivers/crypto/caam/desc.h
index 7a2cde3..03efd6e 100644
--- a/drivers/crypto/caam/desc.h
+++ b/drivers/crypto/caam/desc.h
@@ -15,6 +15,7 @@ struct sec4_sg_entry {
u32 len;
u8 reserved;
u8 buf_pool_id;
+#define SEC4_SG_OFFSET_MASK 0x1FFF
u16 offset;
};
diff --git a/drivers/crypto/caam/sg_sw_qm.h b/drivers/crypto/caam/sg_sw_qm.h
index de867ef..2778dbf 100644
--- a/drivers/crypto/caam/sg_sw_qm.h
+++ b/drivers/crypto/caam/sg_sw_qm.h
@@ -35,7 +35,7 @@
#include "linux/fsl_qman.h"
static inline void dma_to_qm_sg_one(struct qm_sg_entry *qm_sg_ptr,
- dma_addr_t dma, u32 len, u32 offset)
+ dma_addr_t dma, u32 len, u16 offset)
{
qm_sg_ptr->addr = dma;
qm_sg_ptr->extension = 0;
@@ -44,7 +44,7 @@ static inline void dma_to_qm_sg_one(struct qm_sg_entry *qm_sg_ptr,
qm_sg_ptr->__reserved2 = 0;
qm_sg_ptr->bpid = 0;
qm_sg_ptr->__reserved3 = 0;
- qm_sg_ptr->offset = offset;
+ qm_sg_ptr->offset = offset & QM_SG_OFFSET_MASK;
}
/*
@@ -53,7 +53,7 @@ static inline void dma_to_qm_sg_one(struct qm_sg_entry *qm_sg_ptr,
*/
static inline struct qm_sg_entry *
sg_to_qm_sg(struct scatterlist *sg, int sg_count,
- struct qm_sg_entry *qm_sg_ptr, u32 offset)
+ struct qm_sg_entry *qm_sg_ptr, u16 offset)
{
while (sg_count) {
dma_to_qm_sg_one(qm_sg_ptr, sg_dma_address(sg),
@@ -72,7 +72,7 @@ sg_to_qm_sg(struct scatterlist *sg, int sg_count,
*/
static inline void sg_to_qm_sg_last(struct scatterlist *sg, int sg_count,
struct qm_sg_entry *qm_sg_ptr,
- u32 offset)
+ u16 offset)
{
qm_sg_ptr = sg_to_qm_sg(sg, sg_count, qm_sg_ptr, offset);
qm_sg_ptr->final = 1;
diff --git a/drivers/crypto/caam/sg_sw_sec4.h b/drivers/crypto/caam/sg_sw_sec4.h
index f1b30ec..62bdf16 100644
--- a/drivers/crypto/caam/sg_sw_sec4.h
+++ b/drivers/crypto/caam/sg_sw_sec4.h
@@ -11,13 +11,13 @@ struct sec4_sg_entry;
* convert single dma address to h/w link table format
*/
static inline void dma_to_sec4_sg_one(struct sec4_sg_entry *sec4_sg_ptr,
- dma_addr_t dma, u32 len, u32 offset)
+ dma_addr_t dma, u32 len, u16 offset)
{
sec4_sg_ptr->ptr = dma;
sec4_sg_ptr->len = len;
sec4_sg_ptr->reserved = 0;
sec4_sg_ptr->buf_pool_id = 0;
- sec4_sg_ptr->offset = offset;
+ sec4_sg_ptr->offset = offset & SEC4_SG_OFFSET_MASK;
#ifdef DEBUG
print_hex_dump(KERN_ERR, "sec4_sg_ptr@: ",
DUMP_PREFIX_ADDRESS, 16, 4, sec4_sg_ptr,
@@ -31,7 +31,7 @@ static inline void dma_to_sec4_sg_one(struct sec4_sg_entry *sec4_sg_ptr,
*/
static inline struct sec4_sg_entry *
sg_to_sec4_sg(struct scatterlist *sg, int sg_count,
- struct sec4_sg_entry *sec4_sg_ptr, u32 offset)
+ struct sec4_sg_entry *sec4_sg_ptr, u16 offset)
{
while (sg_count) {
dma_to_sec4_sg_one(sec4_sg_ptr, sg_dma_address(sg),
@@ -49,7 +49,7 @@ sg_to_sec4_sg(struct scatterlist *sg, int sg_count,
*/
static inline void sg_to_sec4_sg_last(struct scatterlist *sg, int sg_count,
struct sec4_sg_entry *sec4_sg_ptr,
- u32 offset)
+ u16 offset)
{
sec4_sg_ptr = sg_to_sec4_sg(sg, sg_count, sec4_sg_ptr, offset);
sec4_sg_ptr->len |= SEC4_SG_LEN_FIN;
diff --git a/include/linux/fsl_qman.h b/include/linux/fsl_qman.h
index b149bc5..3b594cc 100644
--- a/include/linux/fsl_qman.h
+++ b/include/linux/fsl_qman.h
@@ -230,6 +230,7 @@ static inline dma_addr_t qm_fd_addr(const struct qm_fd *fd)
{ cmd } }
/* See 2.2.1.3 Multi-Core Datapath Acceleration Architecture */
+#define QM_SG_OFFSET_MASK 0x1FFF
struct qm_sg_entry {
union {
struct {