hwrng: ingenic - don't disable the rng in ingenic_trng_remove
authorMartin Kaiser <martin@kaiser.cx>
Mon, 10 Jul 2023 20:27:32 +0000 (22:27 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sat, 22 Jul 2023 01:59:37 +0000 (13:59 +1200)
There's no need to disable the rng in ingenic_trng_remove.

The driver's init function sets the CFG_GEN_EN bit to enable the
rng. The cleanup function clears CFG_GEN_EN to revert this.

The remove function calls hwrng_unregister. If the ingenic-trng is not
the current rng at this point, CFG_GEN_EN has already been cleared. If
the ingenic-trng is the current rng, drop_current_rng will call the
cleanup function.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/char/hw_random/ingenic-trng.c

index cc88a94..9c54721 100644 (file)
@@ -111,14 +111,9 @@ static int ingenic_trng_probe(struct platform_device *pdev)
 static int ingenic_trng_remove(struct platform_device *pdev)
 {
        struct ingenic_trng *trng = platform_get_drvdata(pdev);
-       unsigned int ctrl;
 
        hwrng_unregister(&trng->rng);
 
-       ctrl = readl(trng->base + TRNG_REG_CFG_OFFSET);
-       ctrl &= ~CFG_GEN_EN;
-       writel(ctrl, trng->base + TRNG_REG_CFG_OFFSET);
-
        return 0;
 }