On Fri, 21 Dec 2018 12:58:14 +0100 Emil Lenngren <emil.lenngren@xxxxxxxxx> wrote: > SPI NAND flashes don't accept new commands while an erase is ongoing. > Make sure to wait until the device is ready before writing the marker. > > Just as with the erase op, no error check is performed since we want > to continue writing the marker even if the erase fails. > > Signed-off-by: Emil Lenngren <emil.lenngren@xxxxxxxxx> > --- > drivers/mtd/nand/spi/core.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c > index 479c2f2cf1..c2724d34e6 100644 > --- a/drivers/mtd/nand/spi/core.c > +++ b/drivers/mtd/nand/spi/core.c > @@ -685,6 +685,8 @@ static int spinand_markbad(struct nand_device *nand, const struct nand_pos *pos) > > spinand_erase_op(spinand, pos); > > + spinand_wait(spinand, NULL); > + After thinking a bit more about it, I think we should simply write the BBM and skip the erase operation. Marking a block bad is just about writing 0 to the first 2 bytes of the OOB area, and we don't need the block to be erased to do that. > memset(spinand->oobbuf, 0, 2); > return spinand_write_page(spinand, &req); > } ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/