提交 818b9739 编写于 作者: H Huang Shijie 提交者: Brian Norris

mtd: nand: add a helper to detect the nand type

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: NHuang Shijie <b32955@freescale.com>
Signed-off-by: NBrian Norris <computersforpeace@gmail.com>
上级 fda5b0e2
...@@ -50,7 +50,7 @@ static void inftl_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd) ...@@ -50,7 +50,7 @@ static void inftl_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
struct INFTLrecord *inftl; struct INFTLrecord *inftl;
unsigned long temp; unsigned long temp;
if (mtd->type != MTD_NANDFLASH || mtd->size > UINT_MAX) if (!mtd_type_is_nand(mtd) || mtd->size > UINT_MAX)
return; return;
/* OK, this is moderately ugly. But probably safe. Alternatives? */ /* OK, this is moderately ugly. But probably safe. Alternatives? */
if (memcmp(mtd->name, "DiskOnChip", 10)) if (memcmp(mtd->name, "DiskOnChip", 10))
......
...@@ -50,7 +50,7 @@ static void nftl_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd) ...@@ -50,7 +50,7 @@ static void nftl_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
struct NFTLrecord *nftl; struct NFTLrecord *nftl;
unsigned long temp; unsigned long temp;
if (mtd->type != MTD_NANDFLASH || mtd->size > UINT_MAX) if (!mtd_type_is_nand(mtd) || mtd->size > UINT_MAX)
return; return;
/* OK, this is moderately ugly. But probably safe. Alternatives? */ /* OK, this is moderately ugly. But probably safe. Alternatives? */
if (memcmp(mtd->name, "DiskOnChip", 10)) if (memcmp(mtd->name, "DiskOnChip", 10))
......
...@@ -290,7 +290,7 @@ static void ssfdcr_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd) ...@@ -290,7 +290,7 @@ static void ssfdcr_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
int cis_sector; int cis_sector;
/* Check for small page NAND flash */ /* 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) mtd->size > UINT_MAX)
return; return;
......
...@@ -349,7 +349,7 @@ static int __init mtd_nandbiterrs_init(void) ...@@ -349,7 +349,7 @@ static int __init mtd_nandbiterrs_init(void)
goto exit_mtddev; goto exit_mtddev;
} }
if (mtd->type != MTD_NANDFLASH) { if (!mtd_type_is_nand(mtd)) {
pr_info("this test requires NAND flash\n"); pr_info("this test requires NAND flash\n");
err = -ENODEV; err = -ENODEV;
goto exit_nand; goto exit_nand;
......
...@@ -289,7 +289,7 @@ static int __init mtd_oobtest_init(void) ...@@ -289,7 +289,7 @@ static int __init mtd_oobtest_init(void)
return err; return err;
} }
if (mtd->type != MTD_NANDFLASH) { if (!mtd_type_is_nand(mtd)) {
pr_info("this test requires NAND flash\n"); pr_info("this test requires NAND flash\n");
goto out; goto out;
} }
......
...@@ -353,7 +353,7 @@ static int __init mtd_pagetest_init(void) ...@@ -353,7 +353,7 @@ static int __init mtd_pagetest_init(void)
return err; return err;
} }
if (mtd->type != MTD_NANDFLASH) { if (!mtd_type_is_nand(mtd)) {
pr_info("this test requires NAND flash\n"); pr_info("this test requires NAND flash\n");
goto out; goto out;
} }
......
...@@ -299,7 +299,7 @@ static int __init mtd_subpagetest_init(void) ...@@ -299,7 +299,7 @@ static int __init mtd_subpagetest_init(void)
return err; return err;
} }
if (mtd->type != MTD_NANDFLASH) { if (!mtd_type_is_nand(mtd)) {
pr_info("this test requires NAND flash\n"); pr_info("this test requires NAND flash\n");
goto out; goto out;
} }
......
...@@ -354,6 +354,11 @@ static inline int mtd_has_oob(const struct mtd_info *mtd) ...@@ -354,6 +354,11 @@ static inline int mtd_has_oob(const struct mtd_info *mtd)
return mtd->_read_oob && mtd->_write_oob; 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) static inline int mtd_can_have_bb(const struct mtd_info *mtd)
{ {
return !!mtd->_block_isbad; return !!mtd->_block_isbad;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册