diff options
Diffstat (limited to 'target/linux/sunxi/patches-4.1/129-nand-sunxi-fix-write-to-USER_DATA-a13.patch')
-rw-r--r-- | target/linux/sunxi/patches-4.1/129-nand-sunxi-fix-write-to-USER_DATA-a13.patch | 26 |
1 files changed, 4 insertions, 22 deletions
diff --git a/target/linux/sunxi/patches-4.1/129-nand-sunxi-fix-write-to-USER_DATA-a13.patch b/target/linux/sunxi/patches-4.1/129-nand-sunxi-fix-write-to-USER_DATA-a13.patch index 8c49dee746..ae2775df22 100644 --- a/target/linux/sunxi/patches-4.1/129-nand-sunxi-fix-write-to-USER_DATA-a13.patch +++ b/target/linux/sunxi/patches-4.1/129-nand-sunxi-fix-write-to-USER_DATA-a13.patch @@ -15,7 +15,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com> --- a/drivers/mtd/nand/sunxi_nand.c +++ b/drivers/mtd/nand/sunxi_nand.c -@@ -904,7 +904,7 @@ static int sunxi_nfc_hw_ecc_write_page(s +@@ -908,7 +908,7 @@ static int sunxi_nfc_hw_ecc_write_page(s for (i = 0; i < ecc->steps; i++) { bool rndactiv = false; @@ -24,7 +24,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com> if (i) chip->cmdfunc(mtd, NAND_CMD_RNDIN, i * ecc->size, -1); -@@ -915,15 +915,13 @@ static int sunxi_nfc_hw_ecc_write_page(s +@@ -919,15 +919,13 @@ static int sunxi_nfc_hw_ecc_write_page(s offset = layout->eccpos[i * ecc->bytes] - 4 + mtd->writesize; /* Fill OOB data in */ @@ -47,7 +47,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com> if (i) { cnt = ecc->bytes + 4; -@@ -942,12 +940,16 @@ static int sunxi_nfc_hw_ecc_write_page(s +@@ -946,12 +944,16 @@ static int sunxi_nfc_hw_ecc_write_page(s if (rndactiv) { /* pre randomize to generate FF patterns on the NAND */ if (!i) { @@ -67,7 +67,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com> } tmp = readl(nfc->regs + NFC_REG_ECC_CTL); tmp &= ~(NFC_RANDOM_DIRECTION | NFC_ECC_EXCEPTION); -@@ -955,6 +957,8 @@ static int sunxi_nfc_hw_ecc_write_page(s +@@ -959,6 +961,8 @@ static int sunxi_nfc_hw_ecc_write_page(s writel(tmp, nfc->regs + NFC_REG_ECC_CTL); } @@ -76,21 +76,3 @@ Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com> chip->cmdfunc(mtd, NAND_CMD_RNDIN, offset, -1); ret = sunxi_nfc_wait_cmd_fifo_empty(nfc); -@@ -1164,13 +1168,13 @@ static int sunxi_nfc_hw_syndrome_ecc_wri - /* Fill OOB data in */ - if (oob_required) { - tmp = 0xffffffff; -- memcpy_toio(nfc->regs + NFC_REG_USER_DATA_BASE, &tmp, -- 4); - } else { -- memcpy_toio(nfc->regs + NFC_REG_USER_DATA_BASE, oob, -- 4); -+ memcpy(&tmp, oob, sizeof(tmp)); -+ tmp = le32_to_cpu(tmp); - } - -+ writel(tmp, nfc->regs + NFC_REG_USER_DATA_BASE); -+ - cnt = ecc->bytes + 4; - if (rnd && - nand_rnd_is_activ(mtd, rnd->page, offset, &cnt) > 0 && |