[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1366967337-5534-7-git-send-email-b32955@freescale.com>
Date: Fri, 26 Apr 2013 17:08:54 +0800
From: Huang Shijie <b32955@...escale.com>
To: <dwmw2@...radead.org>
CC: <dedekind1@...il.com>, <computersforpeace@...il.com>,
<linux-mtd@...ts.infradead.org>, <linux-kernel@...r.kernel.org>,
Huang Shijie <b32955@...escale.com>
Subject: [PATCH V4 6/9] mtd: add ECC info for nand_flash_dev{}
Add an instance of an anonymous struct to store the ECC infor for full id
nand chips.
@ecc.strength: ECC correctability from the datasheet.
@ecc.size: ECC size required by the @ecc.strength,
Also add the necessary macros to make the code simple and clean.
Signed-off-by: Huang Shijie <b32955@...escale.com>
---
include/linux/mtd/nand.h | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h
index 9b28739..5f1c0d1 100644
--- a/include/linux/mtd/nand.h
+++ b/include/linux/mtd/nand.h
@@ -625,6 +625,11 @@ struct nand_chip {
{ .name = (nm), {{ .dev_id = (devid) }}, .chipsize = (chipsz), \
.options = (opts) }
+#define NAND_ECC_INFO(_strength, _size) \
+ { .strength = (_strength), .size = (_size) }
+#define NAND_ECC_STRENGTH(type) ((type)->ecc.strength)
+#define NAND_ECC_SIZE(type) ((type)->ecc.size)
+
/**
* struct nand_flash_dev - NAND Flash Device ID Structure
* @name: a human-readable name of the NAND chip
@@ -642,6 +647,12 @@ struct nand_chip {
* @options: stores various chip bit options
* @id_len: The valid length of the @id.
* @oobsize: OOB size
+ * @ecc.strength: The ECC correctability from the datasheet, same as the
+ * @ecc_strength in nand_chip{}.
+ * @ecc.size: The ECC size required by the @ecc.strength, same as the
+ * @ecc_size in nand_chip{}.
+ * For example, the "4bit ECC for each 512Byte" can be set with
+ * NAND_ECC_INFO(4, 512).
*/
struct nand_flash_dev {
char *name;
@@ -658,6 +669,10 @@ struct nand_flash_dev {
unsigned int options;
uint16_t id_len;
uint16_t oobsize;
+ struct {
+ uint16_t strength;
+ uint16_t size;
+ } ecc;
};
/**
--
1.7.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists