Commit b6c6044b authored by Martin Kaiser's avatar Martin Kaiser Committed by Herbert Xu
Browse files

hwrng: imx-rngc - reasonable timeout for selftest



Set a more reasonable timeout for the rngc selftest.

According to the reference manual, "The self test takes approximately
29,000 cycles to complete." The lowest possible frequency of the rngc
peripheral clock is 33.25MHz, the selftest would then take about 872us.

2.5ms should be enough for the selftest timeout.

Signed-off-by: default avatarMartin Kaiser <martin@kaiser.cx>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent dda5b055
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@

#define RNGC_TIMEOUT  3000 /* 3 sec */

#define RNGC_SELFTEST_TIMEOUT 2500 /* us */

static bool self_test = true;
module_param(self_test, bool, 0);
@@ -110,7 +111,8 @@ static int imx_rngc_self_test(struct imx_rngc *rngc)
	cmd = readl(rngc->base + RNGC_COMMAND);
	writel(cmd | RNGC_CMD_SELF_TEST, rngc->base + RNGC_COMMAND);

	ret = wait_for_completion_timeout(&rngc->rng_op_done, msecs_to_jiffies(RNGC_TIMEOUT));
	ret = wait_for_completion_timeout(&rngc->rng_op_done,
					  usecs_to_jiffies(RNGC_SELFTEST_TIMEOUT));
	imx_rngc_irq_mask_clear(rngc);
	if (!ret)
		return -ETIMEDOUT;