mtd: nand: add a helper to detect the nand type
authorHuang Shijie <b32955@freescale.com>
Wed, 25 Sep 2013 06:58:17 +0000 (14:58 +0800)
committerBrian Norris <computersforpeace@gmail.com>
Sun, 27 Oct 2013 23:27:06 +0000 (16:27 -0700)
This helper detects that whether the mtd's type is nand type.

Now, it's clear that the MTD_NANDFLASH stands for SLC nand only.
So use the mtd_type_is_nand() to replace the old check method
to do the nand type (include the SLC and MLC) check.

Signed-off-by: Huang Shijie <b32955@freescale.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/inftlcore.c
drivers/mtd/nftlcore.c
drivers/mtd/ssfdc.c
drivers/mtd/tests/nandbiterrs.c
drivers/mtd/tests/oobtest.c
drivers/mtd/tests/pagetest.c
drivers/mtd/tests/subpagetest.c
include/linux/mtd/mtd.h

index 3af351484098b6b47c5b0973dda092abdc1bfe0d..b66b541877f0aea5c84e947f72bb45b557fc403a 100644 (file)
@@ -50,7 +50,7 @@ static void inftl_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
        struct INFTLrecord *inftl;
        unsigned long temp;
 
-       if (mtd->type != MTD_NANDFLASH || mtd->size > UINT_MAX)
+       if (!mtd_type_is_nand(mtd) || mtd->size > UINT_MAX)
                return;
        /* OK, this is moderately ugly.  But probably safe.  Alternatives? */
        if (memcmp(mtd->name, "DiskOnChip", 10))
index c5f4ebf4b384404a47df44ec843046e6bb243b44..46f27de018c34e35313a559576d850283933d51a 100644 (file)
@@ -50,7 +50,7 @@ static void nftl_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
        struct NFTLrecord *nftl;
        unsigned long temp;
 
-       if (mtd->type != MTD_NANDFLASH || mtd->size > UINT_MAX)
+       if (!mtd_type_is_nand(mtd) || mtd->size > UINT_MAX)
                return;
        /* OK, this is moderately ugly.  But probably safe.  Alternatives? */
        if (memcmp(mtd->name, "DiskOnChip", 10))
index ab2a52a039c3eef994e7e4a53645d34e1a059eb2..daf82ba7aba038ba4ca322921826cf23d748076f 100644 (file)
@@ -290,7 +290,7 @@ static void ssfdcr_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
        int cis_sector;
 
        /* Check for small page NAND flash */
-       if (mtd->type != MTD_NANDFLASH || mtd->oobsize != OOB_SIZE ||
+       if (!mtd_type_is_nand(mtd) || mtd->oobsize != OOB_SIZE ||
            mtd->size > UINT_MAX)
                return;
 
index 3cd3aabbe1cd8bd3a92a1131e4955c83c41d4431..6f976159611f4ab86ee61033fe6a242b6bc1101f 100644 (file)
@@ -349,7 +349,7 @@ static int __init mtd_nandbiterrs_init(void)
                goto exit_mtddev;
        }
 
-       if (mtd->type != MTD_NANDFLASH) {
+       if (!mtd_type_is_nand(mtd)) {
                pr_info("this test requires NAND flash\n");
                err = -ENODEV;
                goto exit_nand;
index ff35c465bfeea5cb4f8598d95e05993c8cc590db..2e9e2d11f204aa8db90d775743778ce5719443e4 100644 (file)
@@ -289,7 +289,7 @@ static int __init mtd_oobtest_init(void)
                return err;
        }
 
-       if (mtd->type != MTD_NANDFLASH) {
+       if (!mtd_type_is_nand(mtd)) {
                pr_info("this test requires NAND flash\n");
                goto out;
        }
index 44b96e999ad4694c5ad222c357d98bc22c27c247..ed2d3f656fd2ffd41fca36537244e27d7d7fe712 100644 (file)
@@ -353,7 +353,7 @@ static int __init mtd_pagetest_init(void)
                return err;
        }
 
-       if (mtd->type != MTD_NANDFLASH) {
+       if (!mtd_type_is_nand(mtd)) {
                pr_info("this test requires NAND flash\n");
                goto out;
        }
index e2c0adf24cfc35aa6692ff5267b93babc523c69c..a876371ad410c5eec22c912d924574360d769c90 100644 (file)
@@ -299,7 +299,7 @@ static int __init mtd_subpagetest_init(void)
                return err;
        }
 
-       if (mtd->type != MTD_NANDFLASH) {
+       if (!mtd_type_is_nand(mtd)) {
                pr_info("this test requires NAND flash\n");
                goto out;
        }
index f9bfe526d3102175ab3d32149966f61aab35da62..88409b81341883e54cadfb076487512bdd787f95 100644 (file)
@@ -354,6 +354,11 @@ static inline int mtd_has_oob(const struct mtd_info *mtd)
        return mtd->_read_oob && mtd->_write_oob;
 }
 
+static inline int mtd_type_is_nand(const struct mtd_info *mtd)
+{
+       return mtd->type == MTD_NANDFLASH || mtd->type == MTD_MLCNANDFLASH;
+}
+
 static inline int mtd_can_have_bb(const struct mtd_info *mtd)
 {
        return !!mtd->_block_isbad;