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.thomp...@linaro.org> > >Signed-off-by: Lee Jones <lee.jo...@linaro.org> > >--- > > 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.thomp...@linaro.org> 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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/