mtd: sh_flctl: Simplify the hardware ecc page read/write
[linux-2.6-microblaze.git] / drivers / mtd / nand / sh_flctl.c
index 8633b5b..1cc19eb 100644 (file)
@@ -353,35 +353,14 @@ static void set_cmd_regs(struct mtd_info *mtd, uint32_t cmd, uint32_t flcmcdr_va
 static int flctl_read_page_hwecc(struct mtd_info *mtd, struct nand_chip *chip,
                                uint8_t *buf, int oob_required, int page)
 {
-       int i, eccsize = chip->ecc.size;
-       int eccbytes = chip->ecc.bytes;
-       int eccsteps = chip->ecc.steps;
-       uint8_t *p = buf;
-       struct sh_flctl *flctl = mtd_to_flctl(mtd);
-
-       for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize)
-               chip->read_buf(mtd, p, eccsize);
-
-       for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
-               if (flctl->hwecc_cant_correct[i])
-                       mtd->ecc_stats.failed++;
-               else
-                       mtd->ecc_stats.corrected += 0; /* FIXME */
-       }
-
+       chip->read_buf(mtd, buf, mtd->writesize);
        return 0;
 }
 
 static void flctl_write_page_hwecc(struct mtd_info *mtd, struct nand_chip *chip,
                                   const uint8_t *buf, int oob_required)
 {
-       int i, eccsize = chip->ecc.size;
-       int eccbytes = chip->ecc.bytes;
-       int eccsteps = chip->ecc.steps;
-       const uint8_t *p = buf;
-
-       for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize)
-               chip->write_buf(mtd, p, eccsize);
+       chip->write_buf(mtd, buf, mtd->writesize);
 }
 
 static void execmd_read_page_sector(struct mtd_info *mtd, int page_addr)