diff options
-rw-r--r-- | drivers/crypto/caam/ctrl.c | 11 | ||||
-rw-r--r-- | drivers/crypto/caam/regs.h | 10 |
2 files changed, 20 insertions, 1 deletions
diff --git a/drivers/crypto/caam/ctrl.c b/drivers/crypto/caam/ctrl.c index 111ac1ffbc11..c6210373b1be 100644 --- a/drivers/crypto/caam/ctrl.c +++ b/drivers/crypto/caam/ctrl.c | |||
@@ -357,8 +357,17 @@ static void kick_trng(struct platform_device *pdev, int ent_delay) | |||
357 | wr_reg32(&r4tst->rtfrqmin, ent_delay >> 2); | 357 | wr_reg32(&r4tst->rtfrqmin, ent_delay >> 2); |
358 | /* disable maximum frequency count */ | 358 | /* disable maximum frequency count */ |
359 | wr_reg32(&r4tst->rtfrqmax, RTFRQMAX_DISABLE); | 359 | wr_reg32(&r4tst->rtfrqmax, RTFRQMAX_DISABLE); |
360 | /* read the control register */ | ||
361 | val = rd_reg32(&r4tst->rtmctl); | ||
362 | /* | ||
363 | * select raw sampling in both entropy shifter | ||
364 | * and statistical checker | ||
365 | */ | ||
366 | setbits32(&val, RTMCTL_SAMP_MODE_RAW_ES_SC); | ||
360 | /* put RNG4 into run mode */ | 367 | /* put RNG4 into run mode */ |
361 | clrbits32(&r4tst->rtmctl, RTMCTL_PRGM); | 368 | clrbits32(&val, RTMCTL_PRGM); |
369 | /* write back the control register */ | ||
370 | wr_reg32(&r4tst->rtmctl, val); | ||
362 | } | 371 | } |
363 | 372 | ||
364 | /** | 373 | /** |
diff --git a/drivers/crypto/caam/regs.h b/drivers/crypto/caam/regs.h index 5fa739c290a7..bc9cd62b96e0 100644 --- a/drivers/crypto/caam/regs.h +++ b/drivers/crypto/caam/regs.h | |||
@@ -269,6 +269,16 @@ struct rngtst { | |||
269 | /* RNG4 TRNG test registers */ | 269 | /* RNG4 TRNG test registers */ |
270 | struct rng4tst { | 270 | struct rng4tst { |
271 | #define RTMCTL_PRGM 0x00010000 /* 1 -> program mode, 0 -> run mode */ | 271 | #define RTMCTL_PRGM 0x00010000 /* 1 -> program mode, 0 -> run mode */ |
272 | #define RTMCTL_SAMP_MODE_VON_NEUMANN_ES_SC 0 /* use von Neumann data in | ||
273 | both entropy shifter and | ||
274 | statistical checker */ | ||
275 | #define RTMCTL_SAMP_MODE_RAW_ES_SC 1 /* use raw data in both | ||
276 | entropy shifter and | ||
277 | statistical checker */ | ||
278 | #define RTMCTL_SAMP_MODE_VON_NEUMANN_ES_RAW_SC 2 /* use von Neumann data in | ||
279 | entropy shifter, raw data | ||
280 | in statistical checker */ | ||
281 | #define RTMCTL_SAMP_MODE_INVALID 3 /* invalid combination */ | ||
272 | u32 rtmctl; /* misc. control register */ | 282 | u32 rtmctl; /* misc. control register */ |
273 | u32 rtscmisc; /* statistical check misc. register */ | 283 | u32 rtscmisc; /* statistical check misc. register */ |
274 | u32 rtpkrrng; /* poker range register */ | 284 | u32 rtpkrrng; /* poker range register */ |