From: Huang Shijie Date: Wed, 25 Sep 2013 06:58:21 +0000 (+0800) Subject: mtd: nand: fix the wrong mtd->type for nand chip X-Git-Tag: MMI-PSA29.97-13-9~13292^2~68 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=963d1c285fdf3b9ce93b575b879c1cba4a23d958;p=GitHub%2FMotorolaMobilityLLC%2Fkernel-slsi.git mtd: nand: fix the wrong mtd->type for nand chip Current code sets the mtd->type with MTD_NANDFLASH for both SLC and MLC. So the jffs2 may supports the MLC nand, but in actually, the jffs2 should not support the MLC. This patch uses the nand_is_slc() to check the nand cell type, and set the mtd->type with the right nand type. After this patch, the jffs2 only supports the SLC nand. The side-effect of this patch: Before this patch, the ioctl(MEMGETINFO) can only return with the MTD_NANDFLASH; but after this patch, the ioctl(MEMGETINFO) will return with the MTD_NANDFLASH for SLC, and MTD_MLCNANDFLASH for MLC. So the user applictions(such as mtd-utils) should also changes a little for this. Signed-off-by: Huang Shijie Signed-off-by: Brian Norris --- diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c index 55c80efb3081..848884473229 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c @@ -3785,7 +3785,7 @@ int nand_scan_tail(struct mtd_info *mtd) chip->options |= NAND_SUBPAGE_READ; /* Fill in remaining MTD driver data */ - mtd->type = MTD_NANDFLASH; + mtd->type = nand_is_slc(chip) ? MTD_NANDFLASH : MTD_MLCNANDFLASH; mtd->flags = (chip->options & NAND_ROM) ? MTD_CAP_ROM : MTD_CAP_NANDFLASH; mtd->_erase = nand_erase;