diff options
author | Bastian Hecht <hechtb@googlemail.com> | 2012-04-27 06:19:31 -0400 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2012-05-14 00:09:36 -0400 |
commit | 09cbe581e346229e33c48da00439419ff2fe6af7 (patch) | |
tree | d7a426e95057ace197c5406c5ea366f740ce9ebc /drivers/mtd | |
parent | b6778fd7812d877abdbc78b9b2d4304150b2ce05 (diff) |
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')
-rw-r--r-- | drivers/mtd/nand/nand_base.c | 3 |
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, | |||
2118 | 2118 | ||
2119 | if (chip->verify_buf(mtd, buf, mtd->writesize)) | 2119 | if (chip->verify_buf(mtd, buf, mtd->writesize)) |
2120 | return -EIO; | 2120 | return -EIO; |
2121 | |||
2122 | /* Make sure the next page prog is preceded by a status read */ | ||
2123 | chip->cmdfunc(mtd, NAND_CMD_STATUS, -1, -1); | ||
2121 | #endif | 2124 | #endif |
2122 | return 0; | 2125 | return 0; |
2123 | } | 2126 | } |