# Source: http://git.buildroot.net/buildroot/plain/package/kobs-ng/kobs-ng-fix-mtd-defines.patch?id=b6fb2f5018fe0ae9bba275991efc502236422924

Newer kernel headers renamed mtd mode defines and no longer support
MEMSETOOBSEL. Allow code to work with both older and newer kernel
versions.

Signed-off-by: Paul B. Henson <henson@acm.org>

diff -u -r kobs-ng-3.0.35-4.0.0-orig/src/mtd.c kobs-ng-3.0.35-4.0.0/src/mtd.c
--- kobs-ng-3.0.35-4.0.0-orig/src/mtd.c	2012-12-17 22:37:40.000000000 -0800
+++ kobs-ng-3.0.35-4.0.0/src/mtd.c	2013-07-28 19:39:59.000000000 -0700
@@ -852,8 +852,11 @@
 		mp = &md->part[i];
 
 		if (mp->fd != -1) {
+/* Newer kernels dropped MEMSETOOBSEL */
+#ifdef MEMSETOOBSEL
 			(void)ioctl(mp->fd, MEMSETOOBSEL,
 					&mp->old_oobinfo);
+#endif
 			close(mp->fd);
 		}
 
@@ -896,6 +899,8 @@
 				continue;
 			}
 
+/* Newer kernels dropped MEMSETOOBSEL */
+#ifdef MEMSETOOBSEL
 			if (r == -ENOTTY) {
 				r = ioctl(mp->fd, MEMSETOOBSEL, &mp->old_oobinfo);
 				if (r != 0) {
@@ -904,6 +909,7 @@
 				}
 				mp->oobinfochanged = 0;
 			}
+#endif
 		} else {
 			r = ioctl(mp->fd, MTDFILEMODE, (void *)MTD_MODE_RAW);
 			if (r != 0 && r != -ENOTTY) {
@@ -911,6 +917,8 @@
 				continue;
 			}
 
+/* Newer kernels dropped MEMSETOOBSEL */
+#ifdef MEMSETOOBSEL
 			if (r == -ENOTTY) {
 				r = ioctl(mp->fd, MEMSETOOBSEL, &none_oobinfo);
 				if (r != 0) {
@@ -920,6 +928,7 @@
 				mp->oobinfochanged = 1;
 			} else
 				mp->oobinfochanged = 2;
+#endif
 		}
 
 		mp->ecc = ecc;
diff -u -r kobs-ng-3.0.35-4.0.0-orig/src/mtd.h kobs-ng-3.0.35-4.0.0/src/mtd.h
--- kobs-ng-3.0.35-4.0.0-orig/src/mtd.h	2012-12-17 22:37:40.000000000 -0800
+++ kobs-ng-3.0.35-4.0.0/src/mtd.h	2013-07-28 19:33:57.000000000 -0700
@@ -31,6 +31,14 @@
 #include "BootControlBlocks.h"
 #include "rom_nand_hamming_code_ecc.h"
 
+// Newer kernel headers renamed define
+#ifndef MTD_MODE_NORMAL
+#define MTD_MODE_NORMAL MTD_FILE_MODE_NORMAL
+#endif
+#ifndef MTD_MODE_RAW
+#define MTD_MODE_RAW MTD_FILE_MODE_RAW
+#endif
+
 //------------------------------------------------------------------------------
 // Re-definitions of true and false, because the standard ones aren't good
 // enough?
