* [PATCH] [JFFS2] JFFS2 doesn't use OOB at MLC NAND/OneNAND
@ 2008-01-29 8:36 Kyungmin Park
2008-01-29 23:07 ` Jörn Engel
0 siblings, 1 reply; 2+ messages in thread
From: Kyungmin Park @ 2008-01-29 8:36 UTC (permalink / raw)
To: linux-mtd
Hi,
It's revised patch from
http://patchwork.ozlabs.org/linux-mtd/patch?id=15260
Just remove one line
+#define MTD_CAP_MLC_NANDFLASH (MTD_WRITEABLE)
If you don't any rejct please apply this one.
Any comments are welcome.
Thank you,
Kyungmin Park
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
fs/jffs2/erase.c | 1 +
fs/jffs2/fs.c | 6 ++++--
fs/jffs2/os-linux.h | 2 +-
include/mtd/mtd-abi.h | 3 ++-
4 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/fs/jffs2/erase.c b/fs/jffs2/erase.c
index a1db918..65d7dd7 100644
--- a/fs/jffs2/erase.c
+++ b/fs/jffs2/erase.c
@@ -415,6 +415,7 @@ static void jffs2_mark_erased_block(struct jffs2_sb_info *c, struct jffs2_eraseb
/* Cleanmarker in oob area or no cleanmarker at all ? */
if (jffs2_cleanmarker_oob(c) || c->cleanmarker_size == 0) {
+ /* We only write cleanmarker in case of SLC NAND */
if (jffs2_cleanmarker_oob(c)) {
if (jffs2_write_nand_cleanmarker(c, jeb))
goto filebad;
diff --git a/fs/jffs2/fs.c b/fs/jffs2/fs.c
index ee192af..cbeb822 100644
--- a/fs/jffs2/fs.c
+++ b/fs/jffs2/fs.c
@@ -656,7 +656,9 @@ void jffs2_gc_release_page(struct jffs2_sb_info *c,
static int jffs2_flash_setup(struct jffs2_sb_info *c) {
int ret = 0;
- if (jffs2_cleanmarker_oob(c)) {
+ if (c->mtd->type == MTD_NANDFLASH) {
+ if (!(c->mtd->flags & MTD_OOB_WRITEABLE))
+ printk(KERN_INFO "JFFS2 doesn't use OOB.\n");
/* NAND flash... do setup accordingly */
ret = jffs2_nand_flash_setup(c);
if (ret)
@@ -689,7 +691,7 @@ static int jffs2_flash_setup(struct jffs2_sb_info *c) {
void jffs2_flash_cleanup(struct jffs2_sb_info *c) {
- if (jffs2_cleanmarker_oob(c)) {
+ if (c->mtd->type == MTD_NANDFLASH) {
jffs2_nand_flash_cleanup(c);
}
diff --git a/fs/jffs2/os-linux.h b/fs/jffs2/os-linux.h
index bf64686..27dd4e8 100644
--- a/fs/jffs2/os-linux.h
+++ b/fs/jffs2/os-linux.h
@@ -110,7 +110,7 @@ static inline void jffs2_init_inode_info(struct jffs2_inode_info *f)
#define jffs2_can_mark_obsolete(c) (c->mtd->flags & (MTD_BIT_WRITEABLE))
#endif
-#define jffs2_cleanmarker_oob(c) (c->mtd->type == MTD_NANDFLASH)
+#define jffs2_cleanmarker_oob(c) (c->mtd->type == MTD_NANDFLASH && (c->mtd->flags & MTD_OOB_WRITEABLE))
#define jffs2_flash_write_oob(c, ofs, len, retlen, buf) ((c)->mtd->write_oob((c)->mtd, ofs, len, retlen, buf))
#define jffs2_flash_read_oob(c, ofs, len, retlen, buf) ((c)->mtd->read_oob((c)->mtd, ofs, len, retlen, buf))
diff --git a/include/mtd/mtd-abi.h b/include/mtd/mtd-abi.h
index f71dac4..5a61074 100644
--- a/include/mtd/mtd-abi.h
+++ b/include/mtd/mtd-abi.h
@@ -30,12 +30,13 @@ struct mtd_oob_buf {
#define MTD_BIT_WRITEABLE 0x800 /* Single bits can be flipped */
#define MTD_NO_ERASE 0x1000 /* No erase necessary */
#define MTD_STUPID_LOCK 0x2000 /* Always locked after reset */
+#define MTD_OOB_WRITEABLE 0x4000 /* Use Out-Of-Band area */
// Some common devices / combinations of capabilities
#define MTD_CAP_ROM 0
#define MTD_CAP_RAM (MTD_WRITEABLE | MTD_BIT_WRITEABLE | MTD_NO_ERASE)
#define MTD_CAP_NORFLASH (MTD_WRITEABLE | MTD_BIT_WRITEABLE)
-#define MTD_CAP_NANDFLASH (MTD_WRITEABLE)
+#define MTD_CAP_NANDFLASH (MTD_WRITEABLE | MTD_OOB_WRITEABLE)
/* ECC byte placement */
#define MTD_NANDECC_OFF 0 // Switch off ECC (Not recommended)
--
1.5.0.6
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] [JFFS2] JFFS2 doesn't use OOB at MLC NAND/OneNAND
2008-01-29 8:36 [PATCH] [JFFS2] JFFS2 doesn't use OOB at MLC NAND/OneNAND Kyungmin Park
@ 2008-01-29 23:07 ` Jörn Engel
0 siblings, 0 replies; 2+ messages in thread
From: Jörn Engel @ 2008-01-29 23:07 UTC (permalink / raw)
To: Kyungmin Park; +Cc: linux-mtd
On Tue, 29 January 2008 17:36:30 +0900, Kyungmin Park wrote:
>
> It's revised patch from
> http://patchwork.ozlabs.org/linux-mtd/patch?id=15260
>
> Just remove one line
> +#define MTD_CAP_MLC_NANDFLASH (MTD_WRITEABLE)
>
> If you don't any rejct please apply this one.
Looks good to me.
Acked-by: Joern Engel <joern@logfs.org>
Jörn
--
Schrödinger's cat is <BLINK>not</BLINK> dead.
-- Illiad
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2008-01-30 0:07 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-29 8:36 [PATCH] [JFFS2] JFFS2 doesn't use OOB at MLC NAND/OneNAND Kyungmin Park
2008-01-29 23:07 ` Jörn Engel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox