hwrng: st - Use real-world device timings for timeout
authorLee Jones <lee.jones@linaro.org>
Wed, 7 Oct 2015 12:23:28 +0000 (13:23 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 8 Oct 2015 13:42:24 +0000 (21:42 +0800)
commit93d649bd94e1003e2a766a59fadba0cc0089d58b
tree7fb8674ff57d4e9f2c59d902be96dfe0ffeab551
parent8fd80f8ca60bdeda4f3098986e8a566ba9c0c57a
hwrng: st - Use real-world device timings for timeout

Samples are documented to be available every 0.667us, so in theory
the 8 sample deep FIFO should take 5.336us to fill.  However, during
thorough testing, it became apparent that filling the FIFO actually
takes closer to 12us.

Also take into consideration that udelay() can behave oddly i.e. not
delay for as long as requested.

Suggested-by: Russell King <rmk+kernel@arm.linux.org.uk>:
    "IIRC, Linus recommends a x2 factor on delays, especially
     timeouts generated by these functions.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/char/hw_random/st-rng.c