summaryrefslogtreecommitdiffstats
path: root/drivers/crypto/fsl
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/crypto/fsl')
-rw-r--r--drivers/crypto/fsl/jr.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/crypto/fsl/jr.c b/drivers/crypto/fsl/jr.c
index aa527ec954..35606688af 100644
--- a/drivers/crypto/fsl/jr.c
+++ b/drivers/crypto/fsl/jr.c
@@ -408,8 +408,17 @@ static void kick_trng(int ent_delay)
sec_out32(&rng->rtfreqmin, ent_delay >> 2);
/* disable maximum frequency count */
sec_out32(&rng->rtfreqmax, RTFRQMAX_DISABLE);
+ /* read the control register */
+ val = sec_in32(&rng->rtmctl);
+ /*
+ * select raw sampling in both entropy shifter
+ * and statistical checker
+ */
+ sec_setbits32(&val, RTMCTL_SAMP_MODE_RAW_ES_SC);
/* put RNG4 into run mode */
- sec_clrbits32(&rng->rtmctl, RTMCTL_PRGM);
+ sec_clrbits32(&val, RTMCTL_PRGM);
+ /* write back the control register */
+ sec_out32(&rng->rtmctl, val);
}
static int rng_init(void)
OpenPOWER on IntegriCloud