Re: [PATCH 2/3] hwrng: st: Report correct FIFO size

From: Lee Jones
Date: Tue Oct 06 2015 - 11:23:35 EST


On Tue, 06 Oct 2015, Daniel Thompson wrote:

> On 06/10/15 15:43, Lee Jones wrote:
> >The values supplied to the 'read random data from FIFO' arithmetic
> >are not correct. The value fed in to initialise the iterator
> >describes the FIFO depth, but then the iterator is treated in
> >Bytes and subsequently increased by 2 in value for every read
> >word. This means only 4 of the 8 available values are being read
> >during each invocation of .read().
> >
> >This change increased the device bandwidth by a factor of 2.
> >
> >Reported-by: Daniel Thompson <daniel.thompson@xxxxxxxxxx>
> >Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
> >---
> > drivers/char/hw_random/st-rng.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> >diff --git a/drivers/char/hw_random/st-rng.c b/drivers/char/hw_random/st-rng.c
> >index 8c8a435..44480fe 100644
> >--- a/drivers/char/hw_random/st-rng.c
> >+++ b/drivers/char/hw_random/st-rng.c
> >@@ -29,8 +29,9 @@
> > #define ST_RNG_STATUS_BAD_ALTERNANCE BIT(1)
> > #define ST_RNG_STATUS_FIFO_FULL BIT(5)
> >
> >-#define ST_RNG_FIFO_SIZE 8
> > #define ST_RNG_SAMPLE_SIZE 2 /* 2 Byte (16bit) samples */
> >+#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))
>
> This change doubles the timeout and doesn't mention it in the
> changelog.

The next patch renders this point moot.

> Changing the order of 2/3 and 3/3 would avoid this.

Right, if this is a real concern the patches can be applied in a
different order.

> Other than that:
>
> Reviewed-by: Daniel Thompson <daniel.thompson@xxxxxxxxxx>

Thanking you.

--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org â Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/