All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrey Smirnov <andrew.smirnov@gmail.com>
To: linux-crypto@vger.kernel.org
Cc: "Andrey Smirnov" <andrew.smirnov@gmail.com>,
	"Chris Spencer" <christopher.spencer@sea.co.uk>,
	"Cory Tusar" <cory.tusar@zii.aero>,
	"Chris Healy" <cphealy@gmail.com>,
	"Lucas Stach" <l.stach@pengutronix.de>,
	"Horia Geantă" <horia.geanta@nxp.com>,
	"Aymen Sghaier" <aymen.sghaier@nxp.com>,
	"Leonard Crestez" <leonard.crestez@nxp.com>,
	linux-kernel@vger.kernel.org
Subject: [PATCH v7 12/15] crypto: caam - don't hardcode inpentry size
Date: Mon, 12 Aug 2019 13:07:36 -0700	[thread overview]
Message-ID: <20190812200739.30389-13-andrew.smirnov@gmail.com> (raw)
In-Reply-To: <20190812200739.30389-1-andrew.smirnov@gmail.com>

Using dma_addr_t for elements of JobR input ring is not appropriate on
all 64-bit SoCs, some of which, like i.MX8MQ, use only 32-bit wide
pointers there. Convert all of the code to use explicit helper
function that can be later extended to support i.MX8MQ. 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
---
 drivers/crypto/caam/intern.h | 3 ++-
 drivers/crypto/caam/jr.c     | 4 ++--
 drivers/crypto/caam/regs.h   | 9 +++++++++
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/drivers/crypto/caam/intern.h b/drivers/crypto/caam/intern.h
index 081805c0f88b..c00c7c84ec84 100644
--- a/drivers/crypto/caam/intern.h
+++ b/drivers/crypto/caam/intern.h
@@ -55,7 +55,8 @@ struct caam_drv_private_jr {
 	spinlock_t inplock ____cacheline_aligned; /* Input ring index lock */
 	u32 inpring_avail;	/* Number of free entries in input ring */
 	int head;			/* entinfo (s/w ring) head index */
-	dma_addr_t *inpring;	/* Base of input ring, alloc DMA-safe */
+	void *inpring;			/* Base of input ring, alloc
+					 * DMA-safe */
 	int out_ring_read_index;	/* Output index "tail" */
 	int tail;			/* entinfo (s/w ring) tail index */
 	void *outring;			/* Base of output ring, DMA-safe */
diff --git a/drivers/crypto/caam/jr.c b/drivers/crypto/caam/jr.c
index 6c91f38862e4..417ad52615c6 100644
--- a/drivers/crypto/caam/jr.c
+++ b/drivers/crypto/caam/jr.c
@@ -388,7 +388,7 @@ int caam_jr_enqueue(struct device *dev, u32 *desc,
 	head_entry->cbkarg = areq;
 	head_entry->desc_addr_dma = desc_dma;
 
-	jrp->inpring[head] = cpu_to_caam_dma(desc_dma);
+	jr_inpentry_set(jrp->inpring, head, cpu_to_caam_dma(desc_dma));
 
 	/*
 	 * Guarantee that the descriptor's DMA address has been written to
@@ -434,7 +434,7 @@ static int caam_jr_init(struct device *dev)
 	if (error)
 		return error;
 
-	jrp->inpring = dmam_alloc_coherent(dev, sizeof(*jrp->inpring) *
+	jrp->inpring = dmam_alloc_coherent(dev, SIZEOF_JR_INPENTRY *
 					   JOBR_DEPTH, &inpbusaddr,
 					   GFP_KERNEL);
 	if (!jrp->inpring)
diff --git a/drivers/crypto/caam/regs.h b/drivers/crypto/caam/regs.h
index 0cc4a48dfc30..ec49f5ba9689 100644
--- a/drivers/crypto/caam/regs.h
+++ b/drivers/crypto/caam/regs.h
@@ -244,6 +244,15 @@ static inline u32 jr_outentry_jrstatus(void *outring, int hw_idx)
 	return jrstatus;
 }
 
+static inline void jr_inpentry_set(void *inpring, int hw_idx, dma_addr_t val)
+{
+	dma_addr_t *inpentry = inpring;
+
+	inpentry[hw_idx] = val;
+}
+
+#define SIZEOF_JR_INPENTRY	caam_ptr_sz
+
 
 /* Version registers (Era 10+)	e80-eff */
 struct version_regs {
-- 
2.21.0


  parent reply	other threads:[~2019-08-12 20:08 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-12 20:07 [PATCH v7 00/15] crypto: caam - Add i.MX8MQ support Andrey Smirnov
2019-08-12 20:07 ` [PATCH v7 01/15] crypto: caam - move DMA mask selection into a function Andrey Smirnov
2019-08-12 20:07 ` [PATCH v7 02/15] crypto: caam - simplfy clock initialization Andrey Smirnov
2019-08-12 20:07 ` [PATCH v7 03/15] crypto: caam - convert caam_jr_init() to use devres Andrey Smirnov
2019-08-12 20:07 ` [PATCH v7 04/15] crypto: caam - request JR IRQ as the last step Andrey Smirnov
2019-08-12 20:07 ` [PATCH v7 05/15] crytpo: caam - make use of iowrite64*_hi_lo in wr_reg64 Andrey Smirnov
2019-08-12 20:07 ` [PATCH v7 06/15] crypto: caam - use ioread64*_hi_lo in rd_reg64 Andrey Smirnov
2019-08-12 20:07 ` [PATCH v7 07/15] crypto: caam - drop 64-bit only wr/rd_reg64() Andrey Smirnov
2019-08-12 20:07 ` [PATCH v7 08/15] crypto: caam - share definition for MAX_SDLEN Andrey Smirnov
2019-08-12 20:07 ` [PATCH v7 09/15] crypto: caam - make CAAM_PTR_SZ dynamic Andrey Smirnov
2019-08-12 20:07 ` [PATCH v7 10/15] crypto: caam - move cpu_to_caam_dma() selection to runtime Andrey Smirnov
2019-08-12 20:07 ` [PATCH v7 11/15] crypto: caam - drop explicit usage of struct jr_outentry Andrey Smirnov
2019-08-12 20:07 ` Andrey Smirnov [this message]
2019-08-12 20:07 ` [PATCH v7 13/15] crypto: caam - force DMA address to 32-bit on 64-bit i.MX SoCs Andrey Smirnov
2019-08-12 20:07 ` [PATCH v7 14/15] crypto: caam - always select job ring via RSR on i.MX8MQ Andrey Smirnov
2019-08-12 20:07 ` [PATCH v7 15/15] crypto: caam - add clock entry for i.MX8MQ Andrey Smirnov
2019-08-13 13:59 ` [PATCH v7 00/15] crypto: caam - Add i.MX8MQ support Horia Geanta
2019-08-13 18:51   ` Andrey Smirnov
2019-08-14 10:26     ` Horia Geanta

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190812200739.30389-13-andrew.smirnov@gmail.com \
    --to=andrew.smirnov@gmail.com \
    --cc=aymen.sghaier@nxp.com \
    --cc=christopher.spencer@sea.co.uk \
    --cc=cory.tusar@zii.aero \
    --cc=cphealy@gmail.com \
    --cc=horia.geanta@nxp.com \
    --cc=l.stach@pengutronix.de \
    --cc=leonard.crestez@nxp.com \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.