On Wed, Mar 13, 2013 at 7:59 PM, Huang Shijie<b32955@xxxxxxxxxxxxx> wrote:sorry for my poor english.I have 4 Toshiba nand chips which can not be parsed out by theThere are a few grammar/language issues (nands -> NAND chips, id ->
id data. We can not get the oob size from the id data. So add them
as the full-id nand chips in the first of nand_flash_ids.
The nand_get_flash_type() scans the full id nands firstly.
If a full-id nand matchs, it will not continue to parse other
non-full-id nand types, else it will continue to parse the non-full-id nands.
Signed-off-by: Huang Shijie<b32955@xxxxxxxxxxxxx>
---
drivers/mtd/nand/nand_ids.c | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/drivers/mtd/nand/nand_ids.c b/drivers/mtd/nand/nand_ids.c
index 625bc89..38b8cee 100644
--- a/drivers/mtd/nand/nand_ids.c
+++ b/drivers/mtd/nand/nand_ids.c
@@ -10,6 +10,7 @@
*/
#include<linux/module.h>
#include<linux/mtd/nand.h>
+#include<linux/sizes.h>
#define LP_OPTIONS NAND_SAMSUNG_LP_OPTIONS
#define LP_OPTIONS16 (LP_OPTIONS | NAND_BUSWIDTH_16)
@@ -22,6 +23,27 @@
* extended chip ID.
*/
struct nand_flash_dev nand_flash_ids[] = {
+ /*
+ * The full-id nands may share the same Device ID with the non-full-id
+ * nands. In order to distinguish the two type nands, we put the
+ * full-id nands in the first of the table. So the nand_get_flash_type()
+ * scans the full id nands firstly. If a full-id nand matchs, it will
+ * not continue to parse other non-full-id nand types, else it will
+ * continue to parse the non-full-id nands.
+ */
ID, firstly -> first). Also, I don't think you need to explain the
full search here. I would rewrite this whole paragraph as:
"Some incompatible NAND chips share device ID's and so must be listedthanks. I will use this description.
by full ID. We list them first so that we can easily identify the most
specific match."