diff options
Diffstat (limited to 'target/linux/bmips/patches-5.10/044-v5.13-hwrng-bcm2835-add-reset-support.patch')
-rw-r--r-- | target/linux/bmips/patches-5.10/044-v5.13-hwrng-bcm2835-add-reset-support.patch | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/target/linux/bmips/patches-5.10/044-v5.13-hwrng-bcm2835-add-reset-support.patch b/target/linux/bmips/patches-5.10/044-v5.13-hwrng-bcm2835-add-reset-support.patch deleted file mode 100644 index 24b74817be..0000000000 --- a/target/linux/bmips/patches-5.10/044-v5.13-hwrng-bcm2835-add-reset-support.patch +++ /dev/null @@ -1,78 +0,0 @@ -From e5f9f41d5e62004c913bfd4ddf06abe032f5ce1c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com> -Date: Fri, 5 Mar 2021 08:01:32 +0100 -Subject: [PATCH 3/3] hwrng: bcm2835 - add reset support -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -BCM6368 devices need to reset the IPSEC controller in order to generate true -random numbers. - -This is what BCM6368 produces without a reset: -root@OpenWrt:/# cat /dev/hwrng | rngtest -c 1000 -rngtest 6.10 -Copyright (c) 2004 by Henrique de Moraes Holschuh -This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -rngtest: starting FIPS tests... -rngtest: bits received from input: 20000032 -rngtest: FIPS 140-2 successes: 0 -rngtest: FIPS 140-2 failures: 1000 -rngtest: FIPS 140-2(2001-10-10) Monobit: 2 -rngtest: FIPS 140-2(2001-10-10) Poker: 1000 -rngtest: FIPS 140-2(2001-10-10) Runs: 1000 -rngtest: FIPS 140-2(2001-10-10) Long run: 30 -rngtest: FIPS 140-2(2001-10-10) Continuous run: 0 -rngtest: input channel speed: (min=37.253; avg=320.827; max=635.783)Mibits/s -rngtest: FIPS tests speed: (min=12.141; avg=15.034; max=16.428)Mibits/s -rngtest: Program run time: 1336176 microseconds - -Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> -Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de> -Acked-by: Florian Fainelli <f.fainelli@gmail.com> -Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> ---- - drivers/char/hw_random/bcm2835-rng.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - ---- a/drivers/char/hw_random/bcm2835-rng.c -+++ b/drivers/char/hw_random/bcm2835-rng.c -@@ -13,6 +13,7 @@ - #include <linux/platform_device.h> - #include <linux/printk.h> - #include <linux/clk.h> -+#include <linux/reset.h> - - #define RNG_CTRL 0x0 - #define RNG_STATUS 0x4 -@@ -32,6 +33,7 @@ struct bcm2835_rng_priv { - void __iomem *base; - bool mask_interrupts; - struct clk *clk; -+ struct reset_control *reset; - }; - - static inline struct bcm2835_rng_priv *to_rng_priv(struct hwrng *rng) -@@ -94,6 +96,10 @@ static int bcm2835_rng_init(struct hwrng - return ret; - } - -+ ret = reset_control_reset(priv->reset); -+ if (ret) -+ return ret; -+ - if (priv->mask_interrupts) { - /* mask the interrupt */ - val = rng_readl(priv, RNG_INT_MASK); -@@ -159,6 +165,10 @@ static int bcm2835_rng_probe(struct plat - if (PTR_ERR(priv->clk) == -EPROBE_DEFER) - return -EPROBE_DEFER; - -+ priv->reset = devm_reset_control_get_optional_exclusive(dev, NULL); -+ if (IS_ERR(priv->reset)) -+ return PTR_ERR(priv->reset); -+ - priv->rng.name = pdev->name; - priv->rng.init = bcm2835_rng_init; - priv->rng.read = bcm2835_rng_read; |