changeset 108:4a8113f1c36b

Add yaffs2 autoselection
author charles <charles>
date Wed, 14 Dec 2005 01:18:45 +0000
parents be38869f9e3c
children b9876f8c4b48
files Kconfig yaffs_fs.c
diffstat 2 files changed, 21 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/Kconfig
+++ b/Kconfig
@@ -58,6 +58,17 @@ config YAFFS_YAFFS2
 
 	  If unsure, say Y.
 
+config YAFFS_AUTO_YAFFS2
+	bool "Autoselect yaffs2 format"
+	depends on YAFFS_YAFFS2
+	default y
+	help
+	  Without this, you need to explicitely use yaffs2 as the file
+	  system type. With this, you can say "yaffs" and yaffs or yaffs2
+          will be used depending on the device page size.
+
+	  If unsure, say Y.
+
 config YAFFS_DISABLE_WIDE_TNODES
 	bool "Turn off wide tnodes"
 	depends on YAFFS_FS
--- a/yaffs_fs.c
+++ b/yaffs_fs.c
@@ -31,7 +31,7 @@
  */
 
 const char *yaffs_fs_c_version =
-    "$Id: yaffs_fs.c,v 1.36 2005-12-08 00:54:55 charles Exp $";
+    "$Id: yaffs_fs.c,v 1.37 2005-12-14 01:18:45 charles Exp $";
 extern const char *yaffs_guts_c_version;
 
 #include <linux/config.h>
@@ -1364,6 +1364,15 @@ static struct super_block *yaffs_interna
 	T(YAFFS_TRACE_OS, (" oobsize %d\n", mtd->oobsize));
 	T(YAFFS_TRACE_OS, (" erasesize %d\n", mtd->erasesize));
 	T(YAFFS_TRACE_OS, (" size %d\n", mtd->size));
+	
+#if CONFIG_YAFFS_AUTO_YAFFS2
+
+	if (yaffsVersion == 1 && 
+	    mtd->oobblock >= 2048) {
+	    T(YAFFS_TRACE_ALWAYS,("yaffs: auto selecting yaffs2\n"));
+	    yaffsVersion = 2;
+	}	
+#endif
 
 	if (yaffsVersion == 2) {
 		/* Check for version 2 style functions */