kernel: update kernel 4.1 to version 4.1.11
[openwrt/svn-archive/archive.git] / target / linux / sunxi / patches-4.1 / 129-nand-sunxi-fix-write-to-USER_DATA-a13.patch
index 8c49dee746739918110f2732f223a7d1d797c454..ae2775df221048bad57a8510d15bd6fb38ef4917 100644 (file)
@@ -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 &&