From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752961AbbJFOqy (ORCPT ); Tue, 6 Oct 2015 10:46:54 -0400 Received: from mail-wi0-f178.google.com ([209.85.212.178]:36163 "EHLO mail-wi0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752161AbbJFOqJ (ORCPT ); Tue, 6 Oct 2015 10:46:09 -0400 From: Lee Jones To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: kernel@stlinux.com, herbert@gondor.apana.org.au, peter@korsgaard.com, festevam@gmail.com, pankaj.dev@st.com, daniel.thompson@linaro.org, Lee Jones Subject: [PATCH 3/3] hwrng: st: Use real-world device timings for timeout Date: Tue, 6 Oct 2015 15:44:00 +0100 Message-Id: <1444142640-14721-3-git-send-email-lee.jones@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1444142640-14721-1-git-send-email-lee.jones@linaro.org> References: <1444142640-14721-1-git-send-email-lee.jones@linaro.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. Signed-off-by: Lee Jones --- drivers/char/hw_random/st-rng.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/char/hw_random/st-rng.c b/drivers/char/hw_random/st-rng.c index 44480fe..3b1432c 100644 --- a/drivers/char/hw_random/st-rng.c +++ b/drivers/char/hw_random/st-rng.c @@ -33,8 +33,13 @@ #define ST_RNG_FIFO_DEPTH 8 #define ST_RNG_FIFO_SIZE (ST_RNG_FIFO_DEPTH * ST_RNG_SAMPLE_SIZE) -/* Samples are available every 0.667us, which we round to 1us */ -#define ST_RNG_FILL_FIFO_TIMEOUT (1 * (ST_RNG_FIFO_SIZE / ST_RNG_SAMPLE_SIZE)) +/* + * 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. + */ +#define ST_RNG_FILL_FIFO_TIMEOUT 12 struct st_rng_data { void __iomem *base; -- 1.9.1