summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0004-hwrng-atmel-rng-fix-data-valid-check.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0004-hwrng-atmel-rng-fix-data-valid-check.patch')
-rw-r--r--recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0004-hwrng-atmel-rng-fix-data-valid-check.patch72
1 files changed, 72 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0004-hwrng-atmel-rng-fix-data-valid-check.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0004-hwrng-atmel-rng-fix-data-valid-check.patch
new file mode 100644
index 00000000..85105deb
--- /dev/null
+++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0004-hwrng-atmel-rng-fix-data-valid-check.patch
@@ -0,0 +1,72 @@
1From 28a0aa72b2ef00a665564ea05846ad22cb3f18ee Mon Sep 17 00:00:00 2001
2From: Peter Korsgaard <jacmet@sunsite.dk>
3Date: Tue, 12 Jun 2012 08:27:04 +0800
4Subject: [PATCH 04/46] hwrng: atmel-rng - fix data valid check
5
6commit c475c06f4bb689d6ad87d7512e036d6dface3160 upstream.
7
8Brown paper bag: Data valid is LSB of the ISR (status register), and NOT
9of ODATA (current random data word)!
10
11With this, rngtest is a lot happier. Before:
12
13rngtest 3
14Copyright (c) 2004 by Henrique de Moraes Holschuh
15This is free software; see the source for copying conditions. There is NO warr.
16
17rngtest: starting FIPS tests...
18rngtest: bits received from input: 20000032
19rngtest: FIPS 140-2 successes: 3
20rngtest: FIPS 140-2 failures: 997
21rngtest: FIPS 140-2(2001-10-10) Monobit: 604
22rngtest: FIPS 140-2(2001-10-10) Poker: 996
23rngtest: FIPS 140-2(2001-10-10) Runs: 36
24rngtest: FIPS 140-2(2001-10-10) Long run: 0
25rngtest: FIPS 140-2(2001-10-10) Continuous run: 117
26rngtest: input channel speed: (min=622.371; avg=23682.481; max=28224.350)Kibitss
27rngtest: FIPS tests speed: (min=12.361; avg=12.718; max=12.861)Mibits/s
28rngtest: Program run time: 2331696 microsecondsx
29
30After:
31rngtest 3
32Copyright (c) 2004 by Henrique de Moraes Holschuh
33This is free software; see the source for copying conditions. There is NO warr.
34
35rngtest: starting FIPS tests...
36rngtest: bits received from input: 20000032
37rngtest: FIPS 140-2 successes: 999
38rngtest: FIPS 140-2 failures: 1
39rngtest: FIPS 140-2(2001-10-10) Monobit: 0
40rngtest: FIPS 140-2(2001-10-10) Poker: 0
41rngtest: FIPS 140-2(2001-10-10) Runs: 1
42rngtest: FIPS 140-2(2001-10-10) Long run: 0
43rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
44rngtest: input channel speed: (min=777.363; avg=43588.270; max=47870.711)Kibitss
45rngtest: FIPS tests speed: (min=11.943; avg=12.716; max=12.844)Mibits/s
46rngtest: Program run time: 1955282 microseconds
47
48Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
49Reported-by: George Pontis <GPontis@z9.com>
50Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
51Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
52Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
53---
54 drivers/char/hw_random/atmel-rng.c | 2 +-
55 1 file changed, 1 insertion(+), 1 deletion(-)
56
57diff --git a/drivers/char/hw_random/atmel-rng.c b/drivers/char/hw_random/atmel-rng.c
58index 0477982..1b5675b 100644
59--- a/drivers/char/hw_random/atmel-rng.c
60+++ b/drivers/char/hw_random/atmel-rng.c
61@@ -34,7 +34,7 @@ static int atmel_trng_read(struct hwrng *rng, void *buf, size_t max,
62 u32 *data = buf;
63
64 /* data ready? */
65- if (readl(trng->base + TRNG_ODATA) & 1) {
66+ if (readl(trng->base + TRNG_ISR) & 1) {
67 *data = readl(trng->base + TRNG_ODATA);
68 /*
69 ensure data ready is only set again AFTER the next data
70--
711.7.10
72