OSDN Git Service

mtd: nand: mtk: use nand_reset() to reset NAND devices in resume function
authorXiaolei Li <xiaolei.li@mediatek.com>
Thu, 2 Nov 2017 02:05:07 +0000 (10:05 +0800)
committerBoris Brezillon <boris.brezillon@free-electrons.com>
Thu, 30 Nov 2017 09:57:27 +0000 (10:57 +0100)
Previously, we only select chips and then send reset command to a NAND
device during resuming nand driver. There is a lack of deselecting chips.
It is advised to reset and initialize a NAND device using nand_reset().

Signed-off-by: Xiaolei Li <xiaolei.li@mediatek.com>
Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
drivers/mtd/nand/mtk_nand.c

index d86a7d1..6d0101e 100644 (file)
@@ -1540,7 +1540,6 @@ static int mtk_nfc_resume(struct device *dev)
        struct mtk_nfc *nfc = dev_get_drvdata(dev);
        struct mtk_nfc_nand_chip *chip;
        struct nand_chip *nand;
-       struct mtd_info *mtd;
        int ret;
        u32 i;
 
@@ -1553,11 +1552,8 @@ static int mtk_nfc_resume(struct device *dev)
        /* reset NAND chip if VCC was powered off */
        list_for_each_entry(chip, &nfc->chips, node) {
                nand = &chip->nand;
-               mtd = nand_to_mtd(nand);
-               for (i = 0; i < chip->nsels; i++) {
-                       nand->select_chip(mtd, i);
-                       nand->cmdfunc(mtd, NAND_CMD_RESET, -1, -1);
-               }
+               for (i = 0; i < chip->nsels; i++)
+                       nand_reset(nand, i);
        }
 
        return 0;