Skip to contentSkip to conversation

mtd: Fix number of free oob spaces in onenand driver

PATCH NAK Richard Purdie 2 participants 2 messages Mar 2, 2007 – Mar 5, 2007 Memory technology devices (MTD)

lore
Share & tools
lore
#0 lore raw

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
Index: linux/drivers/mtd/onenand/onenand_base.c
===================================================================
@@ -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_oob
 		8, 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[] = {
#1 lore raw

Hello 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.c

2007-03-02 15:02:31.000000000 +0000

+++ linux/drivers/mtd/onenand/onenand_base.c 2007-03-02
15:37:05.000000000 +0000

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_oob
 		8, 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[] = {