summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKyungmin Park <kyungmin.park@samsung.com>2005-09-03 07:36:21 +0100
committerThomas Gleixner <tglx@mtd.linutronix.de>2005-11-06 21:24:51 +0100
commitd36d63d404b75ddf231da0dbd3640e6d1722b4ab (patch)
treefa04e066666c602de3090ff61feb576c13da5ff1
parent405c829f98d216925de00af2ee52f969f2c2891c (diff)
downloadblackbird-op-linux-d36d63d404b75ddf231da0dbd3640e6d1722b4ab.tar.gz
blackbird-op-linux-d36d63d404b75ddf231da0dbd3640e6d1722b4ab.zip
[PATCH] OneNAND: Fix bug in write verify
- Remove unused block, page parameters - Add constant instead of runtime value Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r--drivers/mtd/onenand/onenand_base.c11
-rw-r--r--include/linux/mtd/onenand.h1
2 files changed, 5 insertions, 7 deletions
diff --git a/drivers/mtd/onenand/onenand_base.c b/drivers/mtd/onenand/onenand_base.c
index bdeac01e659f..75d757882697 100644
--- a/drivers/mtd/onenand/onenand_base.c
+++ b/drivers/mtd/onenand/onenand_base.c
@@ -719,13 +719,10 @@ out:
* onenand_verify_page - [GENERIC] verify the chip contents after a write
* @param mtd MTD device structure
* @param buf the databuffer to verify
- * @param block block address
- * @param page page address
*
* Check DataRAM area directly
*/
-static int onenand_verify_page(struct mtd_info *mtd, u_char *buf,
- loff_t addr, int block, int page)
+static int onenand_verify_page(struct mtd_info *mtd, u_char *buf, loff_t addr)
{
struct onenand_chip *this = mtd->priv;
void __iomem *dataram0, *dataram1;
@@ -816,7 +813,7 @@ static int onenand_write_ecc(struct mtd_info *mtd, loff_t to, size_t len,
written += thislen;
/* Only check verify write turn on */
- ret = onenand_verify_page(mtd, (u_char *) buf, to, block, page);
+ ret = onenand_verify_page(mtd, (u_char *) buf, to);
if (ret) {
DEBUG(MTD_DEBUG_LEVEL0, "onenand_write_ecc: verify failed %d\n", ret);
goto out;
@@ -940,7 +937,7 @@ static int onenand_writev_ecc(struct mtd_info *mtd, const struct kvec *vecs,
u_char *eccbuf, struct nand_oobinfo *oobsel)
{
struct onenand_chip *this = mtd->priv;
- unsigned char buffer[mtd->oobblock], *pbuf;
+ unsigned char buffer[MAX_ONENAND_PAGESIZE], *pbuf;
size_t total_len, len;
int i, written = 0;
int ret = 0;
@@ -1025,7 +1022,7 @@ static int onenand_writev_ecc(struct mtd_info *mtd, const struct kvec *vecs,
/* Only check verify write turn on */
- ret = onenand_verify_page(mtd, (u_char *) pbuf, to, block, page);
+ ret = onenand_verify_page(mtd, (u_char *) pbuf, to);
if (ret) {
DEBUG(MTD_DEBUG_LEVEL0, "onenand_writev_ecc: verify failed %d\n", ret);
goto out;
diff --git a/include/linux/mtd/onenand.h b/include/linux/mtd/onenand.h
index 2c29a5ca2c91..58023082320a 100644
--- a/include/linux/mtd/onenand.h
+++ b/include/linux/mtd/onenand.h
@@ -17,6 +17,7 @@
#include <linux/mtd/bbm.h>
#define MAX_BUFFERRAM 2
+#define MAX_ONENAND_PAGESIZE (2048 + 64)
/* Scan and identify a OneNAND device */
extern int onenand_scan(struct mtd_info *mtd, int max_chips);
OpenPOWER on IntegriCloud