mtd: onenand: add option and variable for cache program feature
authorRoman Tereshonkov <roman.tereshonkov@nokia.com>
Wed, 3 Nov 2010 10:55:19 +0000 (12:55 +0200)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Fri, 3 Dec 2010 16:27:54 +0000 (16:27 +0000)
A new option is added for cache program feature. A new variable
ongoing is introduced for onenand_chip to handle the multi-command
cache program operation.

Signed-off-by: Roman Tereshonkov <roman.tereshonkov@nokia.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
include/linux/mtd/onenand.h

index 0c8815bfae1c4583d3d34c24fcb58c3d4593b7db..6da3fe3148284a04fca1f54dd987c785309ca4db 100644 (file)
@@ -137,6 +137,14 @@ struct onenand_chip {
        void                    *bbm;
 
        void                    *priv;
+
+       /*
+        * Shows that the current operation is composed
+        * of sequence of commands. For example, cache program.
+        * Such command status OnGo bit is checked at the end of
+        * sequence.
+        */
+       unsigned int            ongoing;
 };
 
 /*
@@ -171,6 +179,9 @@ struct onenand_chip {
 #define ONENAND_IS_2PLANE(this)                        (0)
 #endif
 
+#define ONENAND_IS_CACHE_PROGRAM(this)                                 \
+       (this->options & ONENAND_HAS_CACHE_PROGRAM)
+
 /* Check byte access in OneNAND */
 #define ONENAND_CHECK_BYTE_ACCESS(addr)                (addr & 0x1)
 
@@ -181,6 +192,7 @@ struct onenand_chip {
 #define ONENAND_HAS_UNLOCK_ALL         (0x0002)
 #define ONENAND_HAS_2PLANE             (0x0004)
 #define ONENAND_HAS_4KB_PAGE           (0x0008)
+#define ONENAND_HAS_CACHE_PROGRAM      (0x0010)
 #define ONENAND_SKIP_UNLOCK_CHECK      (0x0100)
 #define ONENAND_PAGEBUF_ALLOC          (0x1000)
 #define ONENAND_OOBBUF_ALLOC           (0x2000)