Re: [PATCH v2 3/4] mtd: rawnand: ESMT: Also use the last page for bad block markers
On Tue, 22 Jan 2019 11:23:32 + Schrempf Frieder wrote: > From: Frieder Schrempf > > It is known that some ESMT SLC NANDs have been shipped > with the factory bad block markers in the first or last page > of the block, instead of the first or second page. To be on > the safe side, let's check all three locations. > > Signed-off-by: Frieder Schrempf Reviewed-by: Boris Brezillon > --- > drivers/mtd/nand/raw/nand_esmt.c | 9 - > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/mtd/nand/raw/nand_esmt.c > b/drivers/mtd/nand/raw/nand_esmt.c > index 99a8092969a7..b37e0b5af5ae 100644 > --- a/drivers/mtd/nand/raw/nand_esmt.c > +++ b/drivers/mtd/nand/raw/nand_esmt.c > @@ -36,7 +36,14 @@ static void esmt_nand_decode_id(struct nand_chip *chip) > static int esmt_nand_init(struct nand_chip *chip) > { > if (nand_is_slc(chip)) > - chip->options |= NAND_BBM_FIRSTPAGE | NAND_BBM_SECONDPAGE; > + /* > + * It is known that some ESMT SLC NANDs have been shipped > + * with the factory bad block markers in the first or last page > + * of the block, instead of the first or second page. To be on > + * the safe side, let's check all three locations. > + */ > + chip->options |= NAND_BBM_FIRSTPAGE | NAND_BBM_SECONDPAGE | > + NAND_BBM_LASTPAGE; > > return 0; > }
[PATCH v2 3/4] mtd: rawnand: ESMT: Also use the last page for bad block markers
From: Frieder Schrempf It is known that some ESMT SLC NANDs have been shipped with the factory bad block markers in the first or last page of the block, instead of the first or second page. To be on the safe side, let's check all three locations. Signed-off-by: Frieder Schrempf --- drivers/mtd/nand/raw/nand_esmt.c | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/nand/raw/nand_esmt.c b/drivers/mtd/nand/raw/nand_esmt.c index 99a8092969a7..b37e0b5af5ae 100644 --- a/drivers/mtd/nand/raw/nand_esmt.c +++ b/drivers/mtd/nand/raw/nand_esmt.c @@ -36,7 +36,14 @@ static void esmt_nand_decode_id(struct nand_chip *chip) static int esmt_nand_init(struct nand_chip *chip) { if (nand_is_slc(chip)) - chip->options |= NAND_BBM_FIRSTPAGE | NAND_BBM_SECONDPAGE; + /* +* It is known that some ESMT SLC NANDs have been shipped +* with the factory bad block markers in the first or last page +* of the block, instead of the first or second page. To be on +* the safe side, let's check all three locations. +*/ + chip->options |= NAND_BBM_FIRSTPAGE | NAND_BBM_SECONDPAGE | +NAND_BBM_LASTPAGE; return 0; } -- 2.17.1