mtd: Fix number of free oob spaces in onenand driver
PATCH 7/9 mtd: Fix number of free oob spaces in onenand driver
Correct the number of free OOB data positions in the onenand driver.
--- drivers/mtd/onenand/onenand_base.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/mtd/onenand/onenand_base.c +3 -3
@@ -33,8 +33,8 @@ static struct nand_ecclayout onenand_oob 56, 57, 58, 59, 60, }, .oobfree = { - {2, 3}, {14, 2}, {18, 3}, {30, 2}, - {34, 3}, {46, 2}, {50, 3}, {62, 2} + {2, 6}, {14, 4}, {18, 6}, {30, 4}, + {34, 6}, {46, 4}, {50, 6}, {62, 2} } };
@@ -47,7 +47,7 @@ static struct nand_ecclayout onenand_oob8 ,9 ,10 ,11 ,12 ,24 ,25 ,26 ,27 ,28 , }, - .oobfree = { {2, 3}, {14, 2}, {18, 3}, {30, 2} } + .oobfree = { {2, 6}, {14, 4}, {18, 6}, {30, 2} } }; static const unsigned char ffchars[] = {
Kyungmin Park
NAKHello Richard Purdie,
NAK, Even though we can use it. it's out of Spec. It's reason I don't add it.
In your swap patch, swap device only uses 4 bytes. so it's enough in current driver. so we don't need to patch it.
+struct swpdev_oobdata {
+ u16 magic;
+ u16 type;
+} __attribute__((packed));
+
+#define SWPDEV_OOBSIZE sizeof(struct swpdev_oobdata)
+
+ struct mtd_oob_ops ops;
+
+ ops.len = SWPDEV_OOBSIZE;
+ ops.ooblen = SWPDEV_OOBSIZE;
+ ops.oobbuf = buf;
+ ops.ooboffs = swpdev->fsdata_pos;
+ ops.datbuf = NULL;
+ ops.mode = MTD_OOB_PLACE;
I think this patch is only used at YAFFS case. it uses 28 bytes at spare. But current spare areas are 20 bytes (2KB page).
Thank you,
Kyungmin Park
Quoted 32 lines
--- drivers/mtd/onenand/onenand_base.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)Index:
linux/drivers/mtd/onenand/onenand_base.c
===================================================================
---linux.orig/drivers/mtd/onenand/onenand_base.c2007-03-02 15:02:31.000000000 +0000+++
linux/drivers/mtd/onenand/onenand_base.c2007-03-02
15:37:05.000000000 +0000drivers/mtd/onenand/onenand_base.c +3
-3@@ -33,8 +33,8 @@ static struct nand_ecclayout onenand_oob 56, 57, 58, 59, 60, }, .oobfree = { - {2, 3}, {14, 2}, {18, 3}, {30, 2}, - {34, 3}, {46, 2}, {50, 3}, {62, 2} + {2, 6}, {14, 4}, {18, 6}, {30, 4}, + {34, 6}, {46, 4}, {50, 6}, {62, 2} } };@@ -47,7 +47,7 @@ static struct nand_ecclayout onenand_oob8 ,9 ,10 ,11 ,12 ,24 ,25 ,26 ,27 ,28 , }, - .oobfree = { {2, 3}, {14, 2}, {18, 3}, {30, 2} } + .oobfree = { {2, 6}, {14, 4}, {18, 6}, {30, 2} } }; static const unsigned char ffchars[] = {