Message ID | 20200206202206.14770-2-sshivamurthy@micron.com |
---|---|
State | Changes Requested |
Delegated to: | Miquel Raynal |
Headers | show |
Series | Add new series Micron SPI NAND devices | expand |
On Thu, 6 Feb 2020 21:22:02 +0100 shiva.linuxworks@gmail.com wrote: > From: Shivamurthy Shastri <sshivamurthy@micron.com> > > 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> > --- > 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 7d7b1f7fcf71..c028d0d7e236 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: > @@ -98,8 +98,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 int micron_spinand_detect(struct spinand_device *spinand)
diff --git a/drivers/mtd/nand/spi/micron.c b/drivers/mtd/nand/spi/micron.c index 7d7b1f7fcf71..c028d0d7e236 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: @@ -98,8 +98,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 int micron_spinand_detect(struct spinand_device *spinand)