On Tue, 03 Jan 2017 21:17:13 +0800 Icenowy Zheng <[email protected]> wrote:
> 03.01.2017, 21:01, "Boris Brezillon" <[email protected]>: > > The current NAND ID detection in nand_hynix.c is not handling the > > different scheme used by Hynix, thus forcing developers to add new > > entries in the nand_ids table each time they want to support a new MLC > > NAND. > > > > Enhance the detection logic to handle all known formats. This does not > > necessarily mean we are handling all the cases, but if new formats are > > discovered, the code should evolve to take them into account instead of > > adding more full-id entries in the nand_ids table. > > > > Signed-off-by: Boris Brezillon <[email protected]> > > --- > > drivers/mtd/nand/nand_hynix.c | 228 > > ++++++++++++++++++++++++++++++++++++++---- > > 1 file changed, 209 insertions(+), 19 deletions(-) > > > > diff --git a/drivers/mtd/nand/nand_hynix.c b/drivers/mtd/nand/nand_hynix.c > > index 06c8e8b0ec68..a35ca3a593f5 100644 > > --- a/drivers/mtd/nand/nand_hynix.c > > +++ b/drivers/mtd/nand/nand_hynix.c > > @@ -13,21 +13,56 @@ > > */ > > [...] > > + switch (oobsize) { > > case 0: > > mtd->oobsize = 128; > > break; > > @@ -46,23 +81,178 @@ static void hynix_nand_decode_id(struct nand_chip > > *chip) > > case 5: > > mtd->oobsize = 16; > > break; > > - default: > > + case 6: > > mtd->oobsize = 640; > > break; > > + default: > > + /* > > + * We should never reach this case, but if that > > + * happens, this probably means Samsung decided to use > > Is this "Samsung" a copy-n-paste error? ;-) Indeed, and this is not the only place where I'm wrongly mentioning Samsung. I'll fix that. Thanks, Boris

