crypto: caam - make CAAM_PTR_SZ dynamic
In order to be able to configure CAAM pointer size at run-time, which needed to support i.MX8MQ, which is 64-bit SoC with 32-bit pointer size, convert CAAM_PTR_SZ to refer to a global variable of the same name ("caam_ptr_sz") and adjust the rest of the code accordingly. No functional change intended. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Cc: Chris Spencer <christopher.spencer@sea.co.uk> Cc: Cory Tusar <cory.tusar@zii.aero> Cc: Chris Healy <cphealy@gmail.com> Cc: Lucas Stach <l.stach@pengutronix.de> Cc: Horia Geantă <horia.geanta@nxp.com> Cc: Aymen Sghaier <aymen.sghaier@nxp.com> Cc: Leonard Crestez <leonard.crestez@nxp.com> Cc: linux-crypto@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
3a0944c536
commit
1a3daadce9
|
@ -74,7 +74,7 @@
|
|||
|
||||
#define CHACHAPOLY_DESC_JOB_IO_LEN (AEAD_DESC_JOB_IO_LEN + CAAM_CMD_SZ * 6)
|
||||
|
||||
#define DESC_MAX_USED_BYTES (CAAM_DESC_BYTES_MAX - DESC_JOB_IO_LEN)
|
||||
#define DESC_MAX_USED_BYTES (CAAM_DESC_BYTES_MAX - DESC_JOB_IO_LEN_MIN)
|
||||
#define DESC_MAX_USED_LEN (DESC_MAX_USED_BYTES / CAAM_CMD_SZ)
|
||||
|
||||
struct caam_alg_entry {
|
||||
|
|
|
@ -560,7 +560,7 @@ struct ahash_edesc {
|
|||
dma_addr_t sec4_sg_dma;
|
||||
int src_nents;
|
||||
int sec4_sg_bytes;
|
||||
u32 hw_desc[DESC_JOB_IO_LEN / sizeof(u32)] ____cacheline_aligned;
|
||||
u32 hw_desc[DESC_JOB_IO_LEN_MAX / sizeof(u32)] ____cacheline_aligned;
|
||||
struct sec4_sg_entry sec4_sg[0];
|
||||
};
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
L1_CACHE_BYTES)
|
||||
|
||||
/* length of descriptors */
|
||||
#define DESC_JOB_O_LEN (CAAM_CMD_SZ * 2 + CAAM_PTR_SZ * 2)
|
||||
#define DESC_JOB_O_LEN (CAAM_CMD_SZ * 2 + CAAM_PTR_SZ_MAX * 2)
|
||||
#define DESC_RNG_LEN (3 * CAAM_CMD_SZ)
|
||||
|
||||
/* Buffer, its dma address and lock */
|
||||
|
|
|
@ -602,6 +602,7 @@ static int caam_probe(struct platform_device *pdev)
|
|||
caam_imx = (bool)imx_soc_match;
|
||||
|
||||
comp_params = rd_reg32(&ctrl->perfmon.comp_parms_ms);
|
||||
caam_ptr_sz = sizeof(dma_addr_t);
|
||||
caam_dpaa2 = !!(comp_params & CTPR_MS_DPAA2);
|
||||
ctrlpriv->qi_present = !!(comp_params & CTPR_MS_QI_MASK);
|
||||
|
||||
|
|
|
@ -14,9 +14,14 @@
|
|||
|
||||
#define IMMEDIATE (1 << 23)
|
||||
#define CAAM_CMD_SZ sizeof(u32)
|
||||
#define CAAM_PTR_SZ sizeof(dma_addr_t)
|
||||
#define CAAM_PTR_SZ caam_ptr_sz
|
||||
#define CAAM_PTR_SZ_MAX sizeof(dma_addr_t)
|
||||
#define CAAM_PTR_SZ_MIN sizeof(u32)
|
||||
#define CAAM_DESC_BYTES_MAX (CAAM_CMD_SZ * MAX_CAAM_DESCSIZE)
|
||||
#define DESC_JOB_IO_LEN (CAAM_CMD_SZ * 5 + CAAM_PTR_SZ * 3)
|
||||
#define __DESC_JOB_IO_LEN(n) (CAAM_CMD_SZ * 5 + (n) * 3)
|
||||
#define DESC_JOB_IO_LEN __DESC_JOB_IO_LEN(CAAM_PTR_SZ)
|
||||
#define DESC_JOB_IO_LEN_MAX __DESC_JOB_IO_LEN(CAAM_PTR_SZ_MAX)
|
||||
#define DESC_JOB_IO_LEN_MIN __DESC_JOB_IO_LEN(CAAM_PTR_SZ_MIN)
|
||||
|
||||
/*
|
||||
* The CAAM QI hardware constructs a job descriptor which points
|
||||
|
@ -43,7 +48,7 @@
|
|||
* get loaded in deco buffer are '8' or '11'. The remaining words
|
||||
* in deco buffer can be used for storing shared descriptor.
|
||||
*/
|
||||
#define MAX_SDLEN ((CAAM_DESC_BYTES_MAX - DESC_JOB_IO_LEN) / CAAM_CMD_SZ)
|
||||
#define MAX_SDLEN ((CAAM_DESC_BYTES_MAX - DESC_JOB_IO_LEN_MIN) / CAAM_CMD_SZ)
|
||||
|
||||
#ifdef DEBUG
|
||||
#define PRINT_POS do { printk(KERN_DEBUG "%02d: %s\n", desc_len(desc),\
|
||||
|
@ -64,6 +69,7 @@
|
|||
(LDOFF_ENABLE_AUTO_NFIFO << LDST_OFFSET_SHIFT))
|
||||
|
||||
extern bool caam_little_end;
|
||||
extern size_t caam_ptr_sz;
|
||||
|
||||
/*
|
||||
* HW fetches 4 S/G table entries at a time, irrespective of how many entries
|
||||
|
|
|
@ -56,6 +56,9 @@ EXPORT_SYMBOL(caam_little_end);
|
|||
bool caam_imx;
|
||||
EXPORT_SYMBOL(caam_imx);
|
||||
|
||||
size_t caam_ptr_sz;
|
||||
EXPORT_SYMBOL(caam_ptr_sz);
|
||||
|
||||
static const struct {
|
||||
u8 value;
|
||||
const char *error_text;
|
||||
|
|
Loading…
Reference in New Issue