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>
Signed-off-by: Sergey Alyoshin <alyoshin.s@gmail.com>

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,13 @@
 #include "BootControlBlocks.h"
 #include "rom_nand_hamming_code_ecc.h"
 
+// Newer kernel headers renamed define
+#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
+# define MTD_MODE_NORMAL MTD_FILE_MODE_NORMAL
+# define MTD_MODE_RAW MTD_FILE_MODE_RAW
+#endif
+
 //------------------------------------------------------------------------------
 // Re-definitions of true and false, because the standard ones aren't good
 // enough?
