Re: [PATCH V3 1/3] mtd: add new fields to nand_flash_dev{}

From: Huang Shijie
Date: Mon Mar 04 2013 - 03:57:33 EST


ä 2013å03æ04æ 16:37, Artem Bityutskiy åé:
On Mon, 2013-03-04 at 16:08 +0800, Huang Shijie wrote:
ä 2013å03æ04æ 15:50, Artem Bityutskiy åé:
On Mon, 2013-03-04 at 13:57 +0800, Huang Shijie wrote:
The current code uses the @id to store the device id(byte 1).
But if we use the 8 bytes id data as the keyword, and expand the @id
field to 8byte array,
the device id is the second byte now. All the added zeros are for the
I do not think you need to store the full array of ID's. Device ID's for
all the 4 of above chips are different, which is enough to distinguish
between them.

The only thing you need to add is the OOB size field to 'struct
nand_flash_dev'.

If i only add the oob size field. There will be two items with the same
Device ID in nand_flash_ids table,
one has oob_size, one does not have. such as:

{"NAND 8GIB 3,3V 8-bit", 0xDE, 0, 8192, 0, LP_OPTIONS},
OK, I guess for this one:

{"NAND 8GIB 3,3V 8-bit", 0xDE, 0, 8192, 0, LP_OPTIONS, 0},

nand_decode_ext_id() will calculate the OOB size.

{"NAND 8GIB 3,3V 8-bit", 0xDE, 0, 8192, 0, LP_OPTIONS, 640}, //OOB
size is 640.
And for this one 'nand_decode_ext_id()' will calculate it too, but
_afterwards_ we change OOB size to 640.

Does this sound sane?

I think not.

The problem is : we can not know which nand_flash_dev item we should use when the same Device ID occurs.
When we meet a nand whose Device ID is 0xDE, the current code will select the first one:
{"NAND 8GIB 3,3V 8-bit", 0xDE, 0, 8192, 0, LP_OPTIONS, 0}

Could you tell me how can we choose the seconde one? The second same device-id item is
{"NAND 8GIB 3,3V 8-bit", 0xDE, 0, 8192, 0, LP_OPTIONS, 640}

thanks
Huang Shijie









--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/