From 338b698fb6f8f1fb38b36d10dfe087c7701a2d5e Mon Sep 17 00:00:00 2001
From: Gabor Juhos <juhosg@openwrt.org>
Date: Mon, 17 Sep 2012 20:30:50 +0000
Subject: [PATCH] ar71xx: ar934x_nfc: fix READ{0,1} operation on large page
 devices

SVN-Revision: 33450
---
 .../ar71xx/files/drivers/mtd/nand/ar934x_nfc.c    | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/target/linux/ar71xx/files/drivers/mtd/nand/ar934x_nfc.c b/target/linux/ar71xx/files/drivers/mtd/nand/ar934x_nfc.c
index 65d9186d47..86899fd720 100644
--- a/target/linux/ar71xx/files/drivers/mtd/nand/ar934x_nfc.c
+++ b/target/linux/ar71xx/files/drivers/mtd/nand/ar934x_nfc.c
@@ -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:
-- 
GitLab