[PATCH 7/9] mtd: Fix number of free oob spaces in onenand driver
Kyungmin Park
kmpark at infradead.org
Sun Mar 4 19:40:01 EST 2007
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
>
> ---
> 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
> @@ -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[] = {
>
More information about the linux-mtd
mailing list