|
|
|
@ -492,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;
|
|
|
|
|
|
|
|
|
@ -616,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;
|
|
|
|
@ -632,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:
|
|
|
|
@ -648,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;
|
|
|
|
|
|
|
|
|
|