Commit dd5ab248329edab4b16b70e4d9920f162d181d90

Authored by Bastian Hecht
Committed by David Woodhouse
1 parent 7b6b23036b

mtd: sh_flctl: Implement NAND_CMD_RNDOUT command

Implements the command to seek and read in pages.

Signed-off-by: Bastian Hecht <hechtb@gmail.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>

Showing 1 changed file with 16 additions and 0 deletions Side-by-side Diff

drivers/mtd/nand/sh_flctl.c
... ... @@ -303,6 +303,7 @@
303 303 break;
304 304 case NAND_CMD_READ0:
305 305 case NAND_CMD_READOOB:
  306 + case NAND_CMD_RNDOUT:
306 307 addr_len_bytes = flctl->rw_ADRCNT;
307 308 flcmdcr_val |= CDSRC_E;
308 309 if (flctl->chip.options & NAND_BUSWIDTH_16)
... ... @@ -556,6 +557,21 @@
556 557 set_addr(mtd, 0, page_addr);
557 558 }
558 559 flctl->read_bytes = mtd->oobsize;
  560 + goto read_normal_exit;
  561 +
  562 + case NAND_CMD_RNDOUT:
  563 + if (flctl->hwecc)
  564 + break;
  565 +
  566 + if (flctl->page_size)
  567 + set_cmd_regs(mtd, command, (NAND_CMD_RNDOUTSTART << 8)
  568 + | command);
  569 + else
  570 + set_cmd_regs(mtd, command, command);
  571 +
  572 + set_addr(mtd, column, 0);
  573 +
  574 + flctl->read_bytes = mtd->writesize + mtd->oobsize - column;
559 575 goto read_normal_exit;
560 576  
561 577 case NAND_CMD_READID: