diff options
author | Boris BREZILLON <boris.brezillon@free-electrons.com> | 2015-10-20 22:16:00 +0200 |
---|---|---|
committer | Brian Norris <computersforpeace@gmail.com> | 2015-11-02 12:54:25 -0800 |
commit | 74eb9ff54e21dbeefa04ff30e6aaf780b91dd261 (patch) | |
tree | 07d85514b222fe71100d67ab7bb03aea861f1748 /drivers/mtd | |
parent | f3c63795e90f0c6238306883b6c72f14d5355721 (diff) | |
download | blackbird-op-linux-74eb9ff54e21dbeefa04ff30e6aaf780b91dd261.tar.gz blackbird-op-linux-74eb9ff54e21dbeefa04ff30e6aaf780b91dd261.zip |
mtd: nand: sunxi: fix sunxi_nfc_hw_ecc_read/write_chunk()
The sunxi_nfc_hw_ecc_read/write_chunk() functions try to avoid changing
the column address if unnecessary, but the logic to determine whether it's
necessary or not is currently wrong: it adds the ecc->bytes value to the
current offset where it should actually add ecc->size.
Fixes: 913821bdd211 ("mtd: nand: sunxi: introduce sunxi_nfc_hw_ecc_read/write_chunk()")
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Diffstat (limited to 'drivers/mtd')
-rw-r--r-- | drivers/mtd/nand/sunxi_nand.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/mtd/nand/sunxi_nand.c b/drivers/mtd/nand/sunxi_nand.c index ef46ac66248b..96f7370a404f 100644 --- a/drivers/mtd/nand/sunxi_nand.c +++ b/drivers/mtd/nand/sunxi_nand.c @@ -588,7 +588,7 @@ static int sunxi_nfc_hw_ecc_read_chunk(struct mtd_info *mtd, sunxi_nfc_read_buf(mtd, data, ecc->size); - if (data_off + ecc->bytes != oob_off) + if (data_off + ecc->size != oob_off) nand->cmdfunc(mtd, NAND_CMD_RNDOUT, oob_off, -1); ret = sunxi_nfc_wait_cmd_fifo_empty(nfc); @@ -679,7 +679,7 @@ static int sunxi_nfc_hw_ecc_write_chunk(struct mtd_info *mtd, writel(sunxi_nfc_buf_to_user_data(oob), nfc->regs + NFC_REG_USER_DATA(0)); - if (data_off + ecc->bytes != oob_off) + if (data_off + ecc->size != oob_off) nand->cmdfunc(mtd, NAND_CMD_RNDIN, oob_off, -1); ret = sunxi_nfc_wait_cmd_fifo_empty(nfc); |