]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
mtd: sh_flctl: Simplify the hardware ecc page read/write
authorBastian Hecht <hechtb@googlemail.com>
Mon, 14 May 2012 12:14:44 +0000 (14:14 +0200)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Fri, 6 Jul 2012 17:17:03 +0000 (18:17 +0100)
As the equation mtd->writesize == eccsteps * eccsize holds, we can
simplify the code. The second loop of the 1st hunk is never entered,
so we delete it.

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>
drivers/mtd/nand/sh_flctl.c

index 8633b5b98a137d4dc0da2bdcbc446c1a5702bfdd..1cc19eb1c3023163c409997f7144e4bda923b04d 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)