From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: barebox@lists.infradead.org
Subject: [PATCH 2/3] mtd: mxc-nand: Cleanup code creating bad block table
Date: Tue, 30 Apr 2024 11:44:53 +0200 [thread overview]
Message-ID: <20240430094451.1038256-5-u.kleine-koenig@pengutronix.de> (raw)
In-Reply-To: <20240430094451.1038256-4-u.kleine-koenig@pengutronix.de>
Let the variable "numblocks" contain the number of blocks of the NAND
device (and not twice this value). Also the loop variable counts blocks
now instead of the doubled value. Further calculate the offset of the
i-th block from i instead of incrementing in each step and pick a more
sensbile variable name for it.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
drivers/mtd/nand/raw/mxc_nand.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/drivers/mtd/nand/raw/mxc_nand.c b/drivers/mtd/nand/raw/mxc_nand.c
index da1c426d1951..a72275480144 100644
--- a/drivers/mtd/nand/raw/mxc_nand.c
+++ b/drivers/mtd/nand/raw/mxc_nand.c
@@ -1583,31 +1583,31 @@ static int imxnd_create_bbt(struct nand_chip *chip)
{
struct mtd_info *mtd = nand_to_mtd(chip);
int len, i, numblocks, ret;
- loff_t from = 0;
uint8_t *bbt;
- len = mtd->size >> (chip->bbt_erase_shift + 2);
+ numblocks = mtd->size >> chip->bbt_erase_shift;
- /* Allocate memory (2bit per block) and clear the memory bad block table */
+ /*
+ * Allocate memory (2bit per block = 1 byte per 4 blocks) and clear the
+ * memory bad block table
+ */
+ len = (numblocks + 3) >> 2;
bbt = kzalloc(len, GFP_KERNEL);
if (!bbt)
return -ENOMEM;
- numblocks = mtd->size >> (chip->bbt_erase_shift - 1);
+ for (i = 0; i < numblocks; ++i) {
+ loff_t ofs = i << chip->bbt_erase_shift;
- for (i = 0; i < numblocks;) {
- ret = checkbad(chip, from);
+ ret = checkbad(chip, ofs);
if (ret < 0)
goto out;
if (ret) {
- bbt[i >> 3] |= 0x03 << (i & 0x6);
+ bbt[i >> 2] |= 0x03 << (2 * (i & 0x3));
dev_info(mtd->dev.parent, "Bad eraseblock %d at 0x%08x\n",
- i >> 1, (unsigned int)from);
+ i, (unsigned int)ofs);
}
-
- i += 2;
- from += (1 << chip->bbt_erase_shift);
}
chip->bbt_td->options |= NAND_BBT_CREATE;
--
2.43.0
next prev parent reply other threads:[~2024-04-30 9:46 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-30 9:44 [PATCH 1/3] mtd: mxc-nand: Improve comment about vendor BBM and address verschwurbelung Uwe Kleine-König
2024-04-30 9:44 ` Uwe Kleine-König [this message]
2024-04-30 9:44 ` [PATCH 3/3] mtd: mxc-nand: Only automatically create BBT if NAND seems to be pristine Uwe Kleine-König
2024-05-03 7:44 ` Sascha Hauer
2024-05-06 7:23 ` Uwe Kleine-König
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=20240430094451.1038256-5-u.kleine-koenig@pengutronix.de \
--to=u.kleine-koenig@pengutronix.de \
--cc=barebox@lists.infradead.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