Hi Schrempf, Clement, Schrempf Frieder <frieder.schrempf@xxxxxxxxxx> wrote on Fri, 7 Dec 2018 09:31:47 +0000: > Hi Miquèl, > > On 07.12.18 09:00, Miquel Raynal wrote: > > Hi Schrempf, Clément, > > > > Schrempf Frieder <frieder.schrempf@xxxxxxxxxx> wrote on Mon, 3 Dec 2018 > > 08:01:38 +0000: > > > >> From: Frieder Schrempf <frieder.schrempf@xxxxxxxxxx> > >> > >> When reading the status of the on-chip ECC, the Toshiba chip returns > >> two different states for reporting corrected bitflips. We should check > >> for both of them. > >> > >> Also return the free OOB bytes as one contiguous area, instead of > >> multiple sections. > >> > >> Suggested-by: Clément Péron <peron.clem@xxxxxxxxx> > >> Signed-off-by: Frieder Schrempf <frieder.schrempf@xxxxxxxxxx> > >> Acked-by: Clément Péron <peron.clem@xxxxxxxxx> > >> --- > >> Changes for v3: > >> =============== > >> * Add Acked-by > >> * Add comment for BBM in OOB layout > >> > >> Changes for v2: > >> =============== > >> * Remove the changes to the ECC bytes in the OOB layout > >> --- > >> drivers/mtd/nand/spi/toshiba.c | 11 ++++++----- > >> 1 file changed, 6 insertions(+), 5 deletions(-) > >> > >> diff --git a/drivers/mtd/nand/spi/toshiba.c b/drivers/mtd/nand/spi/toshiba.c > >> index 294bcf6..0812655 100644 > >> --- a/drivers/mtd/nand/spi/toshiba.c > >> +++ b/drivers/mtd/nand/spi/toshiba.c > >> @@ -11,6 +11,7 @@ > >> #include <linux/mtd/spinand.h> > >> > >> #define SPINAND_MFR_TOSHIBA 0x98 > >> +#define TOSH_STATUS_ECC_HAS_BITFLIPS_T (3 << 4) > >> > >> static SPINAND_OP_VARIANTS(read_cache_variants, > >> SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0), > >> @@ -33,19 +34,18 @@ static int tc58cvg2s0h_ooblayout_ecc(struct mtd_info *mtd, int section, > >> region->offset = 128 + 16 * section; > >> region->length = 16; > >> > >> - > >> return 0; > >> } > >> > >> static int tc58cvg2s0h_ooblayout_free(struct mtd_info *mtd, int section, > >> struct mtd_oob_region *region) > >> { > >> - if (section > 7) > >> + if (section > 0) > >> return -ERANGE; > >> > >> - region->offset = 2 + 16 * section; > >> - region->length = 14; > >> - > >> + /* 2 bytes reserved for BBM */ > >> + region->offset = 2; > >> + region->length = 126; > >> > >> return 0; > >> } > >> @@ -70,6 +70,7 @@ static int tc58cvg2s0h_ecc_get_status(struct spinand_device *spinand, > >> return -EBADMSG; > >> > >> case STATUS_ECC_HAS_BITFLIPS: > >> + case TOSH_STATUS_ECC_HAS_BITFLIPS_T: > >> /* > >> * Let's try to retrieve the real maximum number of bitflips > >> * in order to avoid forcing the wear-leveling layer to move > > > > If you don't mind, I would like to squash this with the original patch. > > What about also adding Clement's Acked-by to it? > > Sure, you can squash this with the original patch. And I guess adding > Clément's Acked-by would be appropriate, too. Fix squashed, I will push on nand/next today. Thanks, Miquèl ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/