[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220530180924.1792399-4-vabhav.sharma@nxp.com>
Date: Mon, 30 May 2022 23:39:24 +0530
From: Vabhav Sharma <vabhav.sharma@....com>
To: horia.geanta@....com, gaurav.jain@....com, pankaj.gupta@....com,
herbert@...dor.apana.org.au, davem@...emloft.net,
shawnguo@...nel.org, robh+dt@...nel.org
Cc: linux-crypto@...r.kernel.org, linux-kernel@...r.kernel.org,
NXP Linux Team <linux-imx@....com>,
devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
silvano.dininno@....com, V.Sethi@....com
Subject: [PATCH 3/3] crypto: caam: read entropy delay from device tree
Read entropy-delay property from device tree for
TRNG configuration.
update the value if entry is missing in DT.
Signed-off-by: Vabhav Sharma <vabhav.sharma@....com>
Reviewed-by: Gaurav Jain <gaurav.jain@....com>
Reviewed-by: Horia Geanta <horia.geanta@....com>
---
drivers/crypto/caam/ctrl.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/drivers/crypto/caam/ctrl.c b/drivers/crypto/caam/ctrl.c
index 32253a064d0f..5ffab99d831c 100644
--- a/drivers/crypto/caam/ctrl.c
+++ b/drivers/crypto/caam/ctrl.c
@@ -619,7 +619,7 @@ static bool needs_entropy_delay_adjustment(void)
/* Probe routine for CAAM top (controller) level */
static int caam_probe(struct platform_device *pdev)
{
- int ret, ring, gen_sk, ent_delay = RTSDCTL_ENT_DLY_MIN;
+ int ret, ring, gen_sk;
u64 caam_id;
const struct soc_device_attribute *imx_soc_match;
struct device *dev;
@@ -627,7 +627,7 @@ static int caam_probe(struct platform_device *pdev)
struct caam_ctrl __iomem *ctrl;
struct caam_drv_private *ctrlpriv;
struct dentry *dfs_root;
- u32 scfgr, comp_params;
+ u32 scfgr, comp_params, ent_delay = RTSDCTL_ENT_DLY_MIN;
u8 rng_vid;
int pg_size;
int BLOCK_OFFSET = 0;
@@ -847,6 +847,16 @@ static int caam_probe(struct platform_device *pdev)
(rd_reg32(&ctrl->vreg.aesa) & CHA_VER_MISC_AES_NUM_MASK);
}
+ /*
+ * Read entropy-delay property from device tree. If property is not
+ * available or missing, update the entropy delay value only for imx6sx.
+ */
+ if (device_property_read_u32(dev, "entropy-delay", &ent_delay)) {
+ dev_dbg(dev, "entropy-delay property missing in DT\n");
+ if (needs_entropy_delay_adjustment())
+ ent_delay = 12000;
+ }
+
/*
* If SEC has RNG version >= 4 and RNG state handle has not been
* already instantiated, do RNG instantiation
@@ -875,8 +885,6 @@ static int caam_probe(struct platform_device *pdev)
* Also, if a handle was instantiated, do not change
* the TRNG parameters.
*/
- if (needs_entropy_delay_adjustment())
- ent_delay = 12000;
if (!(ctrlpriv->rng4_sh_init || inst_handles)) {
dev_info(dev,
"Entropy delay = %u\n",
--
2.25.1
Powered by blists - more mailing lists