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. Thanks, Frieder ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/