All of lore.kernel.org
 help / color / mirror / Atom feed
From: Artem Bityutskiy <dedekind@infradead.org>
To: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Cc: Frank Haverkamp <haver@vnet.ibm.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Josh Boyer <jwboyer@linux.vnet.ibm.com>,
	Artem Bityutskiy <dedekind@infradead.org>
Subject: [PATCH 18/20 take 4] UBI: JFFS2 UBI support
Date: Fri, 23 Mar 2007 18:44:27 +0200	[thread overview]
Message-ID: <20070323164427.8958.54336.sendpatchset@localhost.localdomain> (raw)
In-Reply-To: <20070323164256.8958.58377.sendpatchset@localhost.localdomain>

diff -auNrp tmp-from/fs/jffs2/fs.c tmp-to/fs/jffs2/fs.c
--- tmp-from/fs/jffs2/fs.c	2007-03-23 18:20:01.000000000 +0200
+++ tmp-to/fs/jffs2/fs.c	2007-03-23 18:20:02.000000000 +0200
@@ -672,6 +672,13 @@ static int jffs2_flash_setup(struct jffs
 			return ret;
 	}
 
+	/* and an UBI volume */
+	if (jffs2_ubivol(c)) {
+		ret = jffs2_ubivol_setup(c);
+		if (ret)
+			return ret;
+	}
+
 	return ret;
 }
 
@@ -690,4 +697,9 @@ void jffs2_flash_cleanup(struct jffs2_sb
 	if (jffs2_nor_wbuf_flash(c)) {
 		jffs2_nor_wbuf_flash_cleanup(c);
 	}
+
+	/* and an UBI volume */
+	if (jffs2_ubivol(c)) {
+		jffs2_ubivol_cleanup(c);
+	}
 }
diff -auNrp tmp-from/fs/jffs2/os-linux.h tmp-to/fs/jffs2/os-linux.h
--- tmp-from/fs/jffs2/os-linux.h	2007-03-23 18:20:01.000000000 +0200
+++ tmp-to/fs/jffs2/os-linux.h	2007-03-23 18:20:02.000000000 +0200
@@ -98,6 +98,9 @@ static inline void jffs2_init_inode_info
 #define jffs2_nor_wbuf_flash(c) (0)
 #define jffs2_nor_wbuf_flash_setup(c) (0)
 #define jffs2_nor_wbuf_flash_cleanup(c) do {} while (0)
+#define jffs2_ubivol(c) (0)
+#define jffs2_ubivol_setup(c) (0)
+#define jffs2_ubivol_cleanup(c) do {} while (0)
 
 #else /* NAND and/or ECC'd NOR support present */
 
@@ -133,6 +136,9 @@ void jffs2_nand_flash_cleanup(struct jff
 #define jffs2_dataflash(c) (c->mtd->type == MTD_DATAFLASH)
 int jffs2_dataflash_setup(struct jffs2_sb_info *c);
 void jffs2_dataflash_cleanup(struct jffs2_sb_info *c);
+#define jffs2_ubivol(c) (c->mtd->type == MTD_UBIVOLUME)
+int jffs2_ubivol_setup(struct jffs2_sb_info *c);
+void jffs2_ubivol_cleanup(struct jffs2_sb_info *c);
 
 #define jffs2_nor_wbuf_flash(c) (c->mtd->type == MTD_NORFLASH && ! (c->mtd->flags & MTD_BIT_WRITEABLE))
 int jffs2_nor_wbuf_flash_setup(struct jffs2_sb_info *c);
diff -auNrp tmp-from/fs/jffs2/wbuf.c tmp-to/fs/jffs2/wbuf.c
--- tmp-from/fs/jffs2/wbuf.c	2007-03-23 18:20:01.000000000 +0200
+++ tmp-to/fs/jffs2/wbuf.c	2007-03-23 18:20:02.000000000 +0200
@@ -1274,3 +1274,27 @@ int jffs2_nor_wbuf_flash_setup(struct jf
 void jffs2_nor_wbuf_flash_cleanup(struct jffs2_sb_info *c) {
 	kfree(c->wbuf);
 }
+
+int jffs2_ubivol_setup(struct jffs2_sb_info *c) {
+	c->cleanmarker_size = 0;
+
+	if (c->mtd->writesize == 1)
+		/* We do not need write-buffer */
+		return 0;
+
+	init_rwsem(&c->wbuf_sem);
+
+	c->wbuf_pagesize =  c->mtd->writesize;
+	c->wbuf_ofs = 0xFFFFFFFF;
+	c->wbuf = kmalloc(c->wbuf_pagesize, GFP_KERNEL);
+	if (!c->wbuf)
+		return -ENOMEM;
+
+	printk(KERN_INFO "JFFS2 write-buffering enabled buffer (%d) erasesize (%d)\n", c->wbuf_pagesize, c->sector_size);
+
+	return 0;
+}
+
+void jffs2_ubivol_cleanup(struct jffs2_sb_info *c) {
+	kfree(c->wbuf);
+}
diff -auNrp tmp-from/include/mtd/mtd-abi.h tmp-to/include/mtd/mtd-abi.h
--- tmp-from/include/mtd/mtd-abi.h	2007-03-23 18:20:01.000000000 +0200
+++ tmp-to/include/mtd/mtd-abi.h	2007-03-23 18:20:02.000000000 +0200
@@ -24,6 +24,7 @@ struct mtd_oob_buf {
 #define MTD_NORFLASH		3
 #define MTD_NANDFLASH		4
 #define MTD_DATAFLASH		6
+#define MTD_UBIVOLUME		7
 
 #define MTD_WRITEABLE		0x400	/* Device is writeable */
 #define MTD_BIT_WRITEABLE	0x800	/* Single bits can be flipped */

  parent reply	other threads:[~2007-03-23 16:53 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-23 16:42 [PATCH 00/20 take 4] UBI: Unsorted Block Images Artem Bityutskiy
2007-03-23 16:43 ` [PATCH 01/20 take 4] UBI: on-flash data structures header Artem Bityutskiy
2007-03-23 16:43 ` [PATCH 02/20 take 4] UBI: user-space API header Artem Bityutskiy
2007-03-23 16:43 ` [PATCH 03/20 take 4] UBI: kernel-space " Artem Bityutskiy
2007-03-23 16:43 ` [PATCH 04/20 take 4] UBI: internal header Artem Bityutskiy
2007-03-23 16:43 ` [PATCH 05/20 take 4] UBI: startup code Artem Bityutskiy
2007-03-23 16:43 ` [PATCH 06/20 take 4] UBI: scanning unit Artem Bityutskiy
2007-03-23 16:43 ` [PATCH 07/20 take 4] UBI: I/O unit Artem Bityutskiy
2007-03-23 16:43 ` [PATCH 08/20 take 4] UBI: volume table unit Artem Bityutskiy
2007-03-23 16:43 ` [PATCH 09/20 take 4] UBI: wear-leveling unit Artem Bityutskiy
2007-03-26 12:34   ` Frank Haverkamp
2007-03-23 16:43 ` [PATCH 10/20 take 4] UBI: EBA unit Artem Bityutskiy
2007-03-23 16:43 ` [PATCH 11/20 take 4] UBI: kernel API functions Artem Bityutskiy
2007-03-23 16:43 ` [PATCH 12/20 take 4] UBI: update functionality Artem Bityutskiy
2007-03-23 16:44 ` [PATCH 13/20 take 4] UBI: volume management functionality Artem Bityutskiy
2007-03-23 16:44 ` [PATCH 14/20 take 4] UBI: character devices functionality Artem Bityutskiy
2007-03-23 16:44 ` [PATCH 15/20 take 4] UBI: gluebi functionality Artem Bityutskiy
2007-03-23 16:44 ` [PATCH 16/20 take 4] UBI: misc stuff Artem Bityutskiy
2007-03-23 16:44 ` [PATCH 17/20 take 4] UBI: debugging stuff Artem Bityutskiy
2007-03-23 16:44 ` Artem Bityutskiy [this message]
2007-03-23 16:44 ` [PATCH 19/20 take 4] UBI: update MAINTAINERS Artem Bityutskiy
2007-03-23 16:44 ` [PATCH 20/20 take 4] UBI: linux build integration Artem Bityutskiy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070323164427.8958.54336.sendpatchset@localhost.localdomain \
    --to=dedekind@infradead.org \
    --cc=dwmw2@infradead.org \
    --cc=haver@vnet.ibm.com \
    --cc=jwboyer@linux.vnet.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.