ar71xx: ar934x_nfc: fix READ{0,1} operation on large page devices
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 17 Sep 2012 20:30:50 +0000 (20:30 +0000)
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 17 Sep 2012 20:30:50 +0000 (20:30 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33450 3c298f89-4303-0410-b956-a3cf2f4a3e73

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: