summaryrefslogtreecommitdiffstats
path: root/drivers/mtd/nand
diff options
context:
space:
mode:
authorBastian Hecht <hechtb@googlemail.com>2012-04-27 12:19:31 +0200
committerDavid Woodhouse <David.Woodhouse@intel.com>2012-05-13 23:09:36 -0500
commit09cbe581e346229e33c48da00439419ff2fe6af7 (patch)
treed7a426e95057ace197c5406c5ea366f740ce9ebc /drivers/mtd/nand
parentb6778fd7812d877abdbc78b9b2d4304150b2ce05 (diff)
downloadlinux-09cbe581e346229e33c48da00439419ff2fe6af7.tar.gz
linux-09cbe581e346229e33c48da00439419ff2fe6af7.tar.xz
linux-09cbe581e346229e33c48da00439419ff2fe6af7.zip
mtd: nand: Add a NAND_CMD_STATUS when using write verification
To make sure the NAND chip is properly programmed we need a status command before each page write. When CONFIG_MTD_NAND_VERIFY_WRITE=y this assumption is broken when writing multiple pages consecutively. This patch fixes this. Signed-off-by: Bastian Hecht <hechtb@gmail.com> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/mtd/nand')
-rw-r--r--drivers/mtd/nand/nand_base.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index eb88d8b04262..512066e3d143 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -2118,6 +2118,9 @@ static int nand_write_page(struct mtd_info *mtd, struct nand_chip *chip,
if (chip->verify_buf(mtd, buf, mtd->writesize))
return -EIO;
+
+ /* Make sure the next page prog is preceded by a status read */
+ chip->cmdfunc(mtd, NAND_CMD_STATUS, -1, -1);
#endif
return 0;
}