mtd: mtdram: Add parameter for setting writebuf size

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Thu Mar 24 11:59:09 PDT 2016


Gitweb:     http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=c67682c5e0a43bdcb049c7775b78200835f12b95
Commit:     c67682c5e0a43bdcb049c7775b78200835f12b95
Parent:     4cf9339d2036287b734dfdcadcebc9e3daf380b5
Author:     Alexander Stein <alexander.stein at systec-electronic.com>
AuthorDate: Wed Mar 2 16:26:59 2016 +0100
Committer:  Brian Norris <computersforpeace at gmail.com>
CommitDate: Mon Mar 7 13:06:27 2016 -0800

    mtd: mtdram: Add parameter for setting writebuf size
    
    ubifs uses the write buffer size in recovery algorithm. When inspecting
    an unclean ubifs recovery fails with writebuf size 64 in mtdram while
    recovery on actual mtd device with writebuf size of 1024 succeeds.
    So add a parameter for setting this property.
    
    Signed-off-by: Alexander Stein <alexander.stein at systec-electronic.com>
    Reviewed-by: Richard Weinberger <richard at nod.at>
    Signed-off-by: Brian Norris <computersforpeace at gmail.com>
---
 drivers/mtd/devices/mtdram.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/mtd/devices/mtdram.c b/drivers/mtd/devices/mtdram.c
index 627a9bc..cbd8547 100644
--- a/drivers/mtd/devices/mtdram.c
+++ b/drivers/mtd/devices/mtdram.c
@@ -19,6 +19,7 @@
 
 static unsigned long total_size = CONFIG_MTDRAM_TOTAL_SIZE;
 static unsigned long erase_size = CONFIG_MTDRAM_ERASE_SIZE;
+static unsigned long writebuf_size = 64;
 #define MTDRAM_TOTAL_SIZE (total_size * 1024)
 #define MTDRAM_ERASE_SIZE (erase_size * 1024)
 
@@ -27,6 +28,8 @@ module_param(total_size, ulong, 0);
 MODULE_PARM_DESC(total_size, "Total device size in KiB");
 module_param(erase_size, ulong, 0);
 MODULE_PARM_DESC(erase_size, "Device erase block size in KiB");
+module_param(writebuf_size, ulong, 0);
+MODULE_PARM_DESC(writebuf_size, "Device write buf size in Bytes (Default: 64)");
 #endif
 
 // We could store these in the mtd structure, but we only support 1 device..
@@ -123,7 +126,7 @@ int mtdram_init_device(struct mtd_info *mtd, void *mapped_address,
 	mtd->flags = MTD_CAP_RAM;
 	mtd->size = size;
 	mtd->writesize = 1;
-	mtd->writebufsize = 64; /* Mimic CFI NOR flashes */
+	mtd->writebufsize = writebuf_size;
 	mtd->erasesize = MTDRAM_ERASE_SIZE;
 	mtd->priv = mapped_address;
 



More information about the linux-mtd-cvs mailing list