| From a6ce5520cf2155d849b4494e7437841d82816220 Mon Sep 17 00:00:00 2001 |
| From: Frieder Schrempf <frieder.schrempf@kontron.de> |
| Date: Tue, 18 Feb 2020 10:05:25 +0000 |
| Subject: [PATCH] mtd: spinand: Explicitly use MTD_OPS_RAW to write the bad |
| block marker to OOB |
| |
| commit 621a7b780bd8b7054647d53d5071961f2c9e0873 upstream. |
| |
| When writing the bad block marker to the OOB area the access mode |
| should be set to MTD_OPS_RAW as it is done for reading the marker. |
| Currently this only works because req.mode is initialized to |
| MTD_OPS_PLACE_OOB (0) and spinand_write_to_cache_op() checks for |
| req.mode != MTD_OPS_AUTO_OOB. |
| |
| Fix this by explicitly setting req.mode to MTD_OPS_RAW. |
| |
| Fixes: 7529df465248 ("mtd: nand: Add core infrastructure to support SPI NANDs") |
| Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de> |
| Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> |
| Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> |
| Link: https://lore.kernel.org/linux-mtd/20200218100432.32433-3-frieder.schrempf@kontron.de |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c |
| index 5a9d5d423dd8..53050305bbce 100644 |
| --- a/drivers/mtd/nand/spi/core.c |
| +++ b/drivers/mtd/nand/spi/core.c |
| @@ -609,6 +609,7 @@ static int spinand_markbad(struct nand_device *nand, const struct nand_pos *pos) |
| .ooboffs = 0, |
| .ooblen = sizeof(marker), |
| .oobbuf.out = marker, |
| + .mode = MTD_OPS_RAW, |
| }; |
| int ret; |
| |
| -- |
| 2.7.4 |
| |