summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Jarzmik <robert.jarzmik@free.fr>2011-11-19 16:02:51 +0100
committerDavid Woodhouse <David.Woodhouse@intel.com>2012-01-09 18:07:22 +0000
commit316e627edcd8186f199120931f5381615a0d9aa4 (patch)
treefe15e2f26f32e820efca0ed24a095da4fcaf18ef
parent376fbf208700f2105d4047b198ca43e1d9db0b33 (diff)
downloadblackbird-op-linux-316e627edcd8186f199120931f5381615a0d9aa4.tar.gz
blackbird-op-linux-316e627edcd8186f199120931f5381615a0d9aa4.zip
mtd: docg3: add OOB buffer to device structure
Add OOB buffer area to store the OOB data until the actual page is written, so that it can be completed by hardware ECC generator. Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Reviewed-by: Ivan Djelic <ivan.djelic@parrot.com> Reviewed-by: Mike Dunn <mikedunn@newsguy.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
-rw-r--r--drivers/mtd/devices/docg3.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/mtd/devices/docg3.h b/drivers/mtd/devices/docg3.h
index e9967aba80a8..397e4616796e 100644
--- a/drivers/mtd/devices/docg3.h
+++ b/drivers/mtd/devices/docg3.h
@@ -243,6 +243,11 @@
* @device_id: number of the cascaded DoCG3 device (0, 1, 2 or 3)
* @if_cfg: if true, reads are on 16bits, else reads are on 8bits
* @bbt: bad block table cache
+ * @oob_write_ofs: offset of the MTD where this OOB should belong (ie. in next
+ * page_write)
+ * @oob_autoecc: if 1, use only bytes 0-7, 15, and fill the others with HW ECC
+ * if 0, use all the 16 bytes.
+ * @oob_write_buf: prepared OOB for next page_write
* @debugfs_root: debugfs root node
*/
struct docg3 {
@@ -252,6 +257,9 @@ struct docg3 {
unsigned int if_cfg:1;
int max_block;
u8 *bbt;
+ loff_t oob_write_ofs;
+ int oob_autoecc;
+ u8 oob_write_buf[DOC_LAYOUT_OOB_SIZE];
struct dentry *debugfs_root;
};
OpenPOWER on IntegriCloud