Commit e1d132b4 authored by Boris Brezillon's avatar Boris Brezillon

staging: mt29f_spinand: switch to mtd_ooblayout_ops

Replace the nand_ecclayout definition by the equivalent mtd_ooblayout_ops
definition.
Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
parent a411679f
...@@ -42,23 +42,33 @@ static inline struct spinand_state *mtd_to_state(struct mtd_info *mtd) ...@@ -42,23 +42,33 @@ static inline struct spinand_state *mtd_to_state(struct mtd_info *mtd)
static int enable_hw_ecc; static int enable_hw_ecc;
static int enable_read_hw_ecc; static int enable_read_hw_ecc;
static struct nand_ecclayout spinand_oob_64 = { static int spinand_ooblayout_64_ecc(struct mtd_info *mtd, int section,
.eccbytes = 24, struct mtd_oob_region *oobregion)
.eccpos = { {
1, 2, 3, 4, 5, 6, if (section > 3)
17, 18, 19, 20, 21, 22, return -ERANGE;
33, 34, 35, 36, 37, 38,
49, 50, 51, 52, 53, 54, }, oobregion->offset = (section * 16) + 1;
.oobfree = { oobregion->length = 6;
{.offset = 8,
.length = 8}, return 0;
{.offset = 24, }
.length = 8},
{.offset = 40, static int spinand_ooblayout_64_free(struct mtd_info *mtd, int section,
.length = 8}, struct mtd_oob_region *oobregion)
{.offset = 56, {
.length = 8}, if (section > 3)
} return -ERANGE;
oobregion->offset = (section * 16) + 8;
oobregion->length = 8;
return 0;
}
static const struct mtd_ooblayout_ops spinand_oob_64_ops = {
.ecc = spinand_ooblayout_64_ecc,
.free = spinand_ooblayout_64_free,
}; };
#endif #endif
...@@ -886,7 +896,6 @@ static int spinand_probe(struct spi_device *spi_nand) ...@@ -886,7 +896,6 @@ static int spinand_probe(struct spi_device *spi_nand)
chip->ecc.strength = 1; chip->ecc.strength = 1;
chip->ecc.total = chip->ecc.steps * chip->ecc.bytes; chip->ecc.total = chip->ecc.steps * chip->ecc.bytes;
chip->ecc.layout = &spinand_oob_64;
chip->ecc.read_page = spinand_read_page_hwecc; chip->ecc.read_page = spinand_read_page_hwecc;
chip->ecc.write_page = spinand_write_page_hwecc; chip->ecc.write_page = spinand_write_page_hwecc;
#else #else
...@@ -912,6 +921,9 @@ static int spinand_probe(struct spi_device *spi_nand) ...@@ -912,6 +921,9 @@ static int spinand_probe(struct spi_device *spi_nand)
mtd->dev.parent = &spi_nand->dev; mtd->dev.parent = &spi_nand->dev;
mtd->oobsize = 64; mtd->oobsize = 64;
#ifdef CONFIG_MTD_SPINAND_ONDIEECC
mtd_set_ooblayout(mtd, &spinand_oob_64_ops);
#endif
if (nand_scan(mtd, 1)) if (nand_scan(mtd, 1))
return -ENXIO; return -ENXIO;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment