ar71xx: ar934x_nfc: fix READ{0,1} operation on large page devices
[openwrt.git] / target / linux / ar71xx / files / drivers / mtd / nand / ar934x_nfc.c
index 65d9186..86899fd 100644 (file)
@@ -613,15 +613,18 @@ ar934x_nfc_cmdfunc(struct mtd_info *mtd, unsigned int command, int column,
 
        case NAND_CMD_READ0:
        case NAND_CMD_READ1:
-               if (nfc->small_page)
+               if (nfc->small_page) {
                        ar934x_nfc_send_read(nfc, command, column, page_addr,
                                             mtd->writesize + mtd->oobsize,
                                             false);
-               else
-                       ar934x_nfc_send_read(nfc, command, column, page_addr,
-                                            mtd->writesize, false);
-               nfc->rndout_page_addr = page_addr;
-               nfc->rndout_read_cmd = command;
+               } else {
+                       ar934x_nfc_send_read(nfc, command, 0, page_addr,
+                                            mtd->writesize + mtd->oobsize,
+                                            false);
+                       nfc->buf_index = column;
+                       nfc->rndout_page_addr = page_addr;
+                       nfc->rndout_read_cmd = command;
+               }
                break;
 
        case NAND_CMD_READOOB: