ar71xx: remove NO_AUTOINCR flag from the NAND drivers
[openwrt/staging/wigyori.git] / target / linux / ar71xx / files / drivers / mtd / nand / ar934x_nfc.c
index a0f2a6ad5621c383556eb154346a8a82be307c2a..9434d0fe0610036d6b1c723742483c61fff84da7 100644 (file)
 #define AR934X_NFC_DEV_READY_TIMEOUT   25 /* msecs */
 #define AR934X_NFC_DMA_READY_TIMEOUT   25 /* msecs */
 #define AR934X_NFC_DONE_TIMEOUT                1000
+#define AR934X_NFC_DMA_RETRIES         20
 
 #define AR934X_NFC_USE_IRQ             true
 #define AR934X_NFC_IRQ_MASK            AR934X_NFC_INT_DEV_RDY(0)
@@ -465,7 +466,7 @@ retry:
                        (write) ? "write" : "read", page_addr);
 
                ar934x_nfc_restart(nfc);
-               if (retries++ < 5)
+               if (retries++ < AR934X_NFC_DMA_RETRIES)
                        goto retry;
 
                dev_err(nfc->parent, "%s operation failed on page %d\n",
@@ -491,12 +492,12 @@ ar934x_nfc_send_readid(struct ar934x_nfc *nfc, unsigned command)
 
 static void
 ar934x_nfc_send_read(struct ar934x_nfc *nfc, unsigned command, int column,
-                    int page_addr, int len, bool oob)
+                    int page_addr, int len)
 {
        u32 cmd_reg;
 
-       nfc_dbg(nfc, "read, column=%d page=%d len=%d oob:%d\n",
-               column, page_addr, len, oob);
+       nfc_dbg(nfc, "read, column=%d page=%d len=%d\n",
+               column, page_addr, len);
 
        cmd_reg = (command & AR934X_NFC_CMD_CMD0_M) << AR934X_NFC_CMD_CMD0_S;
 
@@ -615,12 +616,10 @@ ar934x_nfc_cmdfunc(struct mtd_info *mtd, unsigned int command, int column,
        case NAND_CMD_READ1:
                if (nfc->small_page) {
                        ar934x_nfc_send_read(nfc, command, column, page_addr,
-                                            mtd->writesize + mtd->oobsize,
-                                            false);
+                                            mtd->writesize + mtd->oobsize);
                } else {
                        ar934x_nfc_send_read(nfc, command, 0, page_addr,
-                                            mtd->writesize + mtd->oobsize,
-                                            false);
+                                            mtd->writesize + mtd->oobsize);
                        nfc->buf_index = column;
                        nfc->rndout_page_addr = page_addr;
                        nfc->rndout_read_cmd = command;
@@ -631,13 +630,11 @@ ar934x_nfc_cmdfunc(struct mtd_info *mtd, unsigned int command, int column,
                if (nfc->small_page)
                        ar934x_nfc_send_read(nfc, NAND_CMD_READOOB,
                                             column, page_addr,
-                                            mtd->oobsize,
-                                            true);
+                                            mtd->oobsize);
                else
                        ar934x_nfc_send_read(nfc, NAND_CMD_READ0,
                                             mtd->writesize, page_addr,
-                                            mtd->oobsize,
-                                            true);
+                                            mtd->oobsize);
                break;
 
        case NAND_CMD_RNDOUT:
@@ -647,7 +644,7 @@ ar934x_nfc_cmdfunc(struct mtd_info *mtd, unsigned int command, int column,
                /* emulate subpage read */
                ar934x_nfc_send_read(nfc, nfc->rndout_read_cmd, 0,
                                     nfc->rndout_page_addr,
-                                    mtd->writesize + mtd->oobsize, false);
+                                    mtd->writesize + mtd->oobsize);
                nfc->buf_index = column;
                break;
 
@@ -1054,7 +1051,6 @@ ar934x_nfc_probe(struct platform_device *pdev)
        else
                mtd->name = dev_name(&pdev->dev);
 
-       nand->options = NAND_NO_AUTOINCR;
        nand->chip_delay = 25;
        nand->ecc.mode = NAND_ECC_SOFT;