[U-Boot] [PATCH] MTD: Cleanup jffs2/mtdpart headers

Stefan Roese sr at denx.de
Thu Aug 12 13:43:37 CEST 2010


This patch moves some MTD related defines and prototypes from a jffs2
header to an MTD header. This makes it possible to remove this jffs2
header inclusion from some files without jffs2 relevance.

Signed-off-by: Stefan Roese <sr at denx.de>
Cc: Alexander Stein <alexander.stein at systec-electronic.com>
---
 board/sixnet/sixnet.c        |    1 -
 common/cmd_flash.c           |   11 +---------
 common/cmd_jffs2.c           |    2 +-
 common/cmd_nand.c            |   10 ---------
 drivers/mtd/nand/nand_base.c |    4 ---
 include/jffs2/jffs2.h        |    1 +
 include/jffs2/load_kernel.h  |   43 -----------------------------------------
 include/linux/mtd/mtd.h      |   44 ++++++++++++++++++++++++++++++++++++++++++
 8 files changed, 47 insertions(+), 69 deletions(-)

diff --git a/board/sixnet/sixnet.c b/board/sixnet/sixnet.c
index edb5d13..b30c01b 100644
--- a/board/sixnet/sixnet.c
+++ b/board/sixnet/sixnet.c
@@ -24,7 +24,6 @@
 
 #include <common.h>
 #include <config.h>
-#include <jffs2/jffs2.h>
 #include <mpc8xx.h>
 #include <net.h>	/* for eth_init() */
 #include <rtc.h>
diff --git a/common/cmd_flash.c b/common/cmd_flash.c
index 3e6bab2..abb4a57 100644
--- a/common/cmd_flash.c
+++ b/common/cmd_flash.c
@@ -26,21 +26,12 @@
  */
 #include <common.h>
 #include <command.h>
+#include <linux/mtd/mtd.h>
 
 #ifdef CONFIG_HAS_DATAFLASH
 #include <dataflash.h>
 #endif
 
-#if defined(CONFIG_CMD_MTDPARTS)
-#include <jffs2/jffs2.h>
-
-/* partition handling routines */
-int mtdparts_init(void);
-int mtd_id_parse(const char *id, const char **ret_id, u8 *dev_type, u8 *dev_num);
-int find_dev_and_part(const char *id, struct mtd_device **dev,
-		u8 *part_num, struct part_info **part);
-#endif
-
 #ifndef CONFIG_SYS_NO_FLASH
 extern flash_info_t flash_info[];	/* info for FLASH chips */
 
diff --git a/common/cmd_jffs2.c b/common/cmd_jffs2.c
index 0e7a6b0..b599cc7 100644
--- a/common/cmd_jffs2.c
+++ b/common/cmd_jffs2.c
@@ -215,7 +215,7 @@ static int mtd_device_validate(u8 type, u8 num, u32 *size)
  * @param dev_num parsed device number (output)
  * @return 0 on success, 1 otherwise
  */
-static int mtd_id_parse(const char *id, const char **ret_id, u8 *dev_type, u8 *dev_num)
+int mtd_id_parse(const char *id, const char **ret_id, u8 *dev_type, u8 *dev_num)
 {
 	const char *p = id;
 
diff --git a/common/cmd_nand.c b/common/cmd_nand.c
index 3f1d077..7e861f6 100644
--- a/common/cmd_nand.c
+++ b/common/cmd_nand.c
@@ -18,18 +18,8 @@
 #include <watchdog.h>
 #include <malloc.h>
 #include <asm/byteorder.h>
-#include <jffs2/jffs2.h>
 #include <nand.h>
 
-#if defined(CONFIG_CMD_MTDPARTS)
-
-/* partition handling routines */
-int mtdparts_init(void);
-int id_parse(const char *id, const char **ret_id, u8 *dev_type, u8 *dev_num);
-int find_dev_and_part(const char *id, struct mtd_device **dev,
-		      u8 *part_num, struct part_info **part);
-#endif
-
 static int nand_dump(nand_info_t *nand, ulong off, int only_oob)
 {
 	int i;
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index ed1c9c9..d60059c 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -75,10 +75,6 @@
 #include <asm/io.h>
 #include <asm/errno.h>
 
-#ifdef CONFIG_JFFS2_NAND
-#include <jffs2/jffs2.h>
-#endif
-
 /*
  * CONFIG_SYS_NAND_RESET_CNT is used as a timeout mechanism when resetting
  * a flash.  NAND flash is initialized prior to interrupts so standard timers
diff --git a/include/jffs2/jffs2.h b/include/jffs2/jffs2.h
index 651f94c..1a7b50e 100644
--- a/include/jffs2/jffs2.h
+++ b/include/jffs2/jffs2.h
@@ -39,6 +39,7 @@
 #define __LINUX_JFFS2_H__
 
 #include <asm/types.h>
+#include <linux/mtd/mtd.h>
 #include <jffs2/load_kernel.h>
 
 #define JFFS2_SUPER_MAGIC 0x72b6
diff --git a/include/jffs2/load_kernel.h b/include/jffs2/load_kernel.h
index 906eb3d..ccae2f1 100644
--- a/include/jffs2/load_kernel.h
+++ b/include/jffs2/load_kernel.h
@@ -25,43 +25,6 @@
  *
  */
 
-#include <linux/list.h>
-
-/* mtd device types */
-#define MTD_DEV_TYPE_NOR	0x0001
-#define MTD_DEV_TYPE_NAND	0x0002
-#define MTD_DEV_TYPE_ONENAND	0x0004
-
-#define MTD_DEV_TYPE(type) ((type == MTD_DEV_TYPE_NAND) ? "nand" :	\
-			(type == MTD_DEV_TYPE_ONENAND) ? "onenand" : "nor")
-
-struct mtd_device {
-	struct list_head link;
-	struct mtdids *id;		/* parent mtd id entry */
-	u16 num_parts;			/* number of partitions on this device */
-	struct list_head parts;		/* partitions */
-};
-
-struct part_info {
-	struct list_head link;
-	char *name;			/* partition name */
-	u8 auto_name;			/* set to 1 for generated name */
-	u32 size;			/* total size of the partition */
-	u32 offset;			/* offset within device */
-	void *jffs2_priv;		/* used internaly by jffs2 */
-	u32 mask_flags;			/* kernel MTD mask flags */
-	u32 sector_size;		/* size of sector */
-	struct mtd_device *dev;		/* parent device */
-};
-
-struct mtdids {
-	struct list_head link;
-	u8 type;			/* device type */
-	u8 num;				/* device number */
-	u32 size;			/* device size */
-	char *mtd_id;			/* linux kernel device id */
-};
-
 #define ldr_strlen	strlen
 #define ldr_strncmp	strncmp
 #define ldr_memcpy	memcpy
@@ -74,10 +37,4 @@ struct mtdids {
 #define putLabeledWord(x, y)	printf("%s %08x\n", x, (unsigned int)y)
 #define led_blink(x, y, z, a)
 
-/* common/cmd_jffs2.c */
-extern int mtdparts_init(void);
-extern int find_dev_and_part(const char *id, struct mtd_device **dev,
-				u8 *part_num, struct part_info **part);
-extern struct mtd_device *device_find(u8 type, u8 num);
-
 #endif /* load_kernel_h */
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
index 16556c4..c65f18d 100644
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -9,6 +9,7 @@
 
 #include <linux/types.h>
 #include <div64.h>
+#include <linux/list.h>
 #include <linux/mtd/mtd-abi.h>
 
 #define MTD_CHAR_MAJOR 90
@@ -23,6 +24,41 @@
 
 #define MTD_FAIL_ADDR_UNKNOWN	-1LL
 
+/* U-Boot mtd device types */
+#define MTD_DEV_TYPE_NOR	0x0001
+#define MTD_DEV_TYPE_NAND	0x0002
+#define MTD_DEV_TYPE_ONENAND	0x0004
+
+#define MTD_DEV_TYPE(type) ((type == MTD_DEV_TYPE_NAND) ? "nand" :	\
+			(type == MTD_DEV_TYPE_ONENAND) ? "onenand" : "nor")
+
+struct mtd_device {
+	struct list_head link;
+	struct mtdids *id;		/* parent mtd id entry */
+	u16 num_parts;			/* number of partitions on this device */
+	struct list_head parts;		/* partitions */
+};
+
+struct part_info {
+	struct list_head link;
+	char *name;			/* partition name */
+	u8 auto_name;			/* set to 1 for generated name */
+	u32 size;			/* total size of the partition */
+	u32 offset;			/* offset within device */
+	void *jffs2_priv;		/* used internaly by jffs2 */
+	u32 mask_flags;			/* kernel MTD mask flags */
+	u32 sector_size;		/* size of sector */
+	struct mtd_device *dev;		/* parent device */
+};
+
+struct mtdids {
+	struct list_head link;
+	u8 type;			/* device type */
+	u8 num;				/* device number */
+	u32 size;			/* device size */
+	char *mtd_id;			/* linux kernel device id */
+};
+
 /*
  * Enumeration for NAND/OneNAND flash chip state
  */
@@ -260,6 +296,14 @@ extern struct mtd_info *get_mtd_device_nm(const char *name);
 
 extern void put_mtd_device(struct mtd_info *mtd);
 
+/* U-Boot mtdparts stuff */
+extern int mtdparts_init(void);
+extern int find_dev_and_part(const char *id, struct mtd_device **dev,
+				u8 *part_num, struct part_info **part);
+extern struct mtd_device *device_find(u8 type, u8 num);
+extern int mtd_id_parse(const char *id, const char **ret_id, u8 *dev_type,
+			u8 *dev_num);
+
 /* XXX U-BOOT XXX */
 #if 0
 struct mtd_notifier {
-- 
1.7.2.1



More information about the U-Boot mailing list