From 0bb86d823b6c150c7ee17de0cfca9ffccc16463b Mon Sep 17 00:00:00 2001
From: Remy Bohmer <linux@bohmer.net>
Date: Wed, 20 Aug 2008 20:46:56 +0200
Subject: [PATCH] Make the YAFFS filesystem work

Recently the YAFFS filesystem support has been added to U-boot.
However, just enabling CONFIG_YAFFS2 is not enough to get it working.

ymount will generate an exception (when dereferencing mtd->readoob()), because
the genericDevice is a null pointer. Further, a lot of logging is produced
while using YAFFS fs, so logging should also be disabled.
Both issues are solved by this patch.

With this patch and CONFIG_YAFFS2 enabled, I get a readable filesystem
in U-boot, as well as in Linux.

Tested on a Atmel AT91SAM9261EK board.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
Acked-by: William Juul <william.juul@tandberg.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
 fs/yaffs2/yaffscfg.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/fs/yaffs2/yaffscfg.c b/fs/yaffs2/yaffscfg.c
index 3beb34d145..16e84a4210 100644
--- a/fs/yaffs2/yaffscfg.c
+++ b/fs/yaffs2/yaffscfg.c
@@ -34,7 +34,7 @@
 #include "malloc.h"
 #endif
 
-unsigned yaffs_traceMask = 0xFFFFFFFF;
+unsigned yaffs_traceMask = 0x0; /* Disable logging */
 static int yaffs_errno = 0;
 
 void yaffsfs_SetError(int err)
@@ -121,6 +121,9 @@ int yaffs_StartUp(void)
 	yaffs_Device *flashDev = calloc(1, sizeof(yaffs_Device));
 	yaffsfs_config[0].dev = flashDev;
 
+	/* store the mtd device for later use */
+	flashDev->genericDevice = mtd;
+
 	// Stuff to configure YAFFS
 	// Stuff to initialise anything special (eg lock semaphore).
 	yaffsfs_LocalInitialisation();
-- 
2.39.5