From: Martin Kaiser <martin@kaiser.cx>
To: Herbert Xu <herbert@gondor.apana.org.au>
Cc: linux-crypto@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Martin Kaiser <martin@kaiser.cx>
Subject: [PATCH v2 1/3] hwrng: imx-rngc - simpler check for available random bytes
Date: Fri, 19 May 2023 18:04:31 +0200 [thread overview]
Message-ID: <20230519160433.287161-2-martin@kaiser.cx> (raw)
In-Reply-To: <20230519160433.287161-1-martin@kaiser.cx>
The "level" field in the status register contains the number of random
bytes that are available in the FIFO. Use GENMASK to extract this field.
We only want to check if level is 0 or if we can read another byte.
There's no need for the shift or the level variable.
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
---
v2:
- remove the shift when checking the fifo level field
drivers/char/hw_random/imx-rngc.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/drivers/char/hw_random/imx-rngc.c b/drivers/char/hw_random/imx-rngc.c
index a1c24148ed31..cf29c323453a 100644
--- a/drivers/char/hw_random/imx-rngc.c
+++ b/drivers/char/hw_random/imx-rngc.c
@@ -17,6 +17,7 @@
#include <linux/hw_random.h>
#include <linux/completion.h>
#include <linux/io.h>
+#include <linux/bitfield.h>
#define RNGC_VER_ID 0x0000
#define RNGC_COMMAND 0x0004
@@ -44,8 +45,7 @@
#define RNGC_CTRL_AUTO_SEED 0x00000010
#define RNGC_STATUS_ERROR 0x00010000
-#define RNGC_STATUS_FIFO_LEVEL_MASK 0x00000f00
-#define RNGC_STATUS_FIFO_LEVEL_SHIFT 8
+#define RNGC_STATUS_FIFO_LEVEL_MASK GENMASK(11, 8)
#define RNGC_STATUS_SEED_DONE 0x00000020
#define RNGC_STATUS_ST_DONE 0x00000010
@@ -122,7 +122,6 @@ static int imx_rngc_read(struct hwrng *rng, void *data, size_t max, bool wait)
{
struct imx_rngc *rngc = container_of(rng, struct imx_rngc, rng);
unsigned int status;
- unsigned int level;
int retval = 0;
while (max >= sizeof(u32)) {
@@ -132,11 +131,7 @@ static int imx_rngc_read(struct hwrng *rng, void *data, size_t max, bool wait)
if (status & RNGC_STATUS_ERROR)
break;
- /* how many random numbers are in FIFO? [0-16] */
- level = (status & RNGC_STATUS_FIFO_LEVEL_MASK) >>
- RNGC_STATUS_FIFO_LEVEL_SHIFT;
-
- if (level) {
+ if (status & RNGC_STATUS_FIFO_LEVEL_MASK) {
/* retrieve a random number from FIFO */
*(u32 *)data = readl(rngc->base + RNGC_FIFO);
--
2.30.2
next prev parent reply other threads:[~2023-05-19 16:05 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-27 18:53 [PATCH 0/3] hwrng: imx-rngc - simplify register definitions Martin Kaiser
2023-04-27 18:53 ` [PATCH 1/3] hwrng: imx-rngc - use bitfield macros to read fifo level Martin Kaiser
2023-05-11 5:16 ` Herbert Xu
2023-05-11 7:43 ` Martin Kaiser
2023-04-27 18:53 ` [PATCH 2/3] hwrng: imx-rngc - use bitfield macros to read rng type Martin Kaiser
2023-04-27 18:53 ` [PATCH 3/3] hwrng: imx-rngc - use BIT(x) for register bit defines Martin Kaiser
2023-05-19 16:04 ` [PATCH v2 0/3] hwrng: imx-rngc - simplify register definitions Martin Kaiser
2023-05-19 16:04 ` Martin Kaiser [this message]
2023-05-19 16:04 ` [PATCH v2 2/3] hwrng: imx-rngc - use bitfield macros to read rng type Martin Kaiser
2023-05-19 16:04 ` [PATCH v2 3/3] hwrng: imx-rngc - use BIT(x) for register bit defines Martin Kaiser
2023-05-24 10:14 ` [PATCH v2 0/3] hwrng: imx-rngc - simplify register definitions Herbert Xu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230519160433.287161-2-martin@kaiser.cx \
--to=martin@kaiser.cx \
--cc=herbert@gondor.apana.org.au \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®