mirror of
https://github.com/hanwckf/immortalwrt-mt798x.git
synced 2025-01-10 03:09:08 +08:00
84 lines
2.8 KiB
Diff
84 lines
2.8 KiB
Diff
From d3137043440fb1faaaf2481184f35b9ed0c1f2c2 Mon Sep 17 00:00:00 2001
|
|
From: Shivamurthy Shastri <sshivamurthy@micron.com>
|
|
Date: Wed, 11 Mar 2020 18:57:30 +0100
|
|
Subject: [PATCH] mtd: spinand: micron: Generalize the OOB layout structure and
|
|
function names
|
|
|
|
In order to add new Micron SPI NAND devices, we generalized the OOB
|
|
layout structure and function names.
|
|
|
|
Signed-off-by: Shivamurthy Shastri <sshivamurthy@micron.com>
|
|
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
|
|
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
|
Link: https://lore.kernel.org/linux-mtd/20200311175735.2007-2-sshivamurthy@micron.com
|
|
---
|
|
drivers/mtd/nand/spi/micron.c | 28 ++++++++++++++--------------
|
|
1 file changed, 14 insertions(+), 14 deletions(-)
|
|
|
|
diff --git a/drivers/mtd/nand/spi/micron.c b/drivers/mtd/nand/spi/micron.c
|
|
index f56f81325e10ac..cc1ee68421c8e1 100644
|
|
--- a/drivers/mtd/nand/spi/micron.c
|
|
+++ b/drivers/mtd/nand/spi/micron.c
|
|
@@ -34,38 +34,38 @@ static SPINAND_OP_VARIANTS(update_cache_variants,
|
|
SPINAND_PROG_LOAD_X4(false, 0, NULL, 0),
|
|
SPINAND_PROG_LOAD(false, 0, NULL, 0));
|
|
|
|
-static int mt29f2g01abagd_ooblayout_ecc(struct mtd_info *mtd, int section,
|
|
- struct mtd_oob_region *region)
|
|
+static int micron_8_ooblayout_ecc(struct mtd_info *mtd, int section,
|
|
+ struct mtd_oob_region *region)
|
|
{
|
|
if (section)
|
|
return -ERANGE;
|
|
|
|
- region->offset = 64;
|
|
- region->length = 64;
|
|
+ region->offset = mtd->oobsize / 2;
|
|
+ region->length = mtd->oobsize / 2;
|
|
|
|
return 0;
|
|
}
|
|
|
|
-static int mt29f2g01abagd_ooblayout_free(struct mtd_info *mtd, int section,
|
|
- struct mtd_oob_region *region)
|
|
+static int micron_8_ooblayout_free(struct mtd_info *mtd, int section,
|
|
+ struct mtd_oob_region *region)
|
|
{
|
|
if (section)
|
|
return -ERANGE;
|
|
|
|
/* Reserve 2 bytes for the BBM. */
|
|
region->offset = 2;
|
|
- region->length = 62;
|
|
+ region->length = (mtd->oobsize / 2) - 2;
|
|
|
|
return 0;
|
|
}
|
|
|
|
-static const struct mtd_ooblayout_ops mt29f2g01abagd_ooblayout = {
|
|
- .ecc = mt29f2g01abagd_ooblayout_ecc,
|
|
- .free = mt29f2g01abagd_ooblayout_free,
|
|
+static const struct mtd_ooblayout_ops micron_8_ooblayout = {
|
|
+ .ecc = micron_8_ooblayout_ecc,
|
|
+ .free = micron_8_ooblayout_free,
|
|
};
|
|
|
|
-static int mt29f2g01abagd_ecc_get_status(struct spinand_device *spinand,
|
|
- u8 status)
|
|
+static int micron_8_ecc_get_status(struct spinand_device *spinand,
|
|
+ u8 status)
|
|
{
|
|
switch (status & MICRON_STATUS_ECC_MASK) {
|
|
case STATUS_ECC_NO_BITFLIPS:
|
|
@@ -99,8 +99,8 @@ static const struct spinand_info micron_spinand_table[] = {
|
|
&write_cache_variants,
|
|
&update_cache_variants),
|
|
0,
|
|
- SPINAND_ECCINFO(&mt29f2g01abagd_ooblayout,
|
|
- mt29f2g01abagd_ecc_get_status)),
|
|
+ SPINAND_ECCINFO(µn_8_ooblayout,
|
|
+ micron_8_ecc_get_status)),
|
|
};
|
|
|
|
static const struct spinand_manufacturer_ops micron_spinand_manuf_ops = {
|