• Krzysztof Kozlowski's avatar
    crypto: exynos - Add new Exynos RNG driver · c46ea13f
    Krzysztof Kozlowski authored
    Replace existing hw_ranndom/exynos-rng driver with a new, reworked one.
    This is a driver for pseudo random number generator block which on
    Exynos4 chipsets must be seeded with some value.  On newer Exynos5420
    chipsets it might seed itself from true random number generator block
    but this is not implemented yet.
    
    New driver is a complete rework to use the crypto ALGAPI instead of
    hw_random API.  Rationale for the change:
    1. hw_random interface is for true RNG devices.
    2. The old driver was seeding itself with jiffies which is not a
       reliable source for randomness.
    3. Device generates five random 32-bit numbers in each pass but old
       driver was returning only one 32-bit number thus its performance was
       reduced.
    
    Compatibility with DeviceTree bindings is preserved.
    
    New driver does not use runtime power management but manually enables
    and disables the clock when needed.  This is preferred approach because
    using runtime PM just to toggle clock is huge overhead.
    
    Another difference is reseeding itself with generated random data
    periodically and during resuming from system suspend (previously driver
    was re-seeding itself again with jiffies).
    Signed-off-by: default avatarKrzysztof Kozlowski <krzk@kernel.org>
    Reviewed-by: default avatarStephan Müller <smueller@chronox.de>
    Reviewed-by: default avatarPrasannaKumar Muralidharan <prasannatsmkumar@gmail.com>
    Reviewed-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    c46ea13f
Name
Last commit
Last update
Documentation Loading commit data...
arch Loading commit data...
block Loading commit data...
certs Loading commit data...
crypto Loading commit data...
drivers Loading commit data...
firmware Loading commit data...
fs Loading commit data...
include Loading commit data...
init Loading commit data...
ipc Loading commit data...
kernel Loading commit data...
lib Loading commit data...
mm Loading commit data...
net Loading commit data...
samples Loading commit data...
scripts Loading commit data...
security Loading commit data...
sound Loading commit data...
tools Loading commit data...
usr Loading commit data...
virt Loading commit data...
.cocciconfig Loading commit data...
.get_maintainer.ignore Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.mailmap Loading commit data...
COPYING Loading commit data...
CREDITS Loading commit data...
Kbuild Loading commit data...
Kconfig Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README Loading commit data...