X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fstaging%2Fchunkeey.git;a=blobdiff_plain;f=target%2Flinux%2Fsunxi%2Fpatches-4.1%2F129-nand-sunxi-fix-write-to-USER_DATA-a13.patch;h=ae2775df221048bad57a8510d15bd6fb38ef4917;hp=8c49dee746739918110f2732f223a7d1d797c454;hb=da94b00df54ec23656b4d8a785b1e9af5da1d207;hpb=6be2305da83471c442dab83366c25be4dfb38793 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 --- 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 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 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 } 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 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 &&