mirror_ubuntu-kernels/include/linux/mtd
Brian Norris 8429bb3975 mtd: nand: support Micron READ RETRY
Micron provides READ RETRY support via the ONFI vendor-specific
parameter block (to indicate how many read-retry modes are available)
and the ONFI {GET,SET}_FEATURES commands with a vendor-specific feature
address (to support reading/switching the current read-retry mode).

The recommended sequence is as follows:

  1. Perform PAGE_READ operation
  2. If no ECC error, we are done
  3. Run SET_FEATURES with feature address 89h, mode 1
  4. Retry PAGE_READ operation
  5. If ECC error and there are remaining supported modes, increment the
     mode and return to step 3. Otherwise, this is a true ECC error.
  6. Run SET_FEATURES with feature address 89h, mode 0, to return to the
     default state.

This patch implements the chip->setup_read_retry() callback for
Micron and fills in the chip->read_retries.

Tested on Micron MT29F32G08CBADA, which supports 8 read-retry modes.

The Micron vendor-specific table was checked against the datasheets for
the following Micron NAND:

Needs retry   Cell-type    Part number          Vendor revision    Byte 180
-----------   ---------    ----------------     ---------------    ------------
No            SLC          MT29F16G08ABABA      1                  Reserved (0)
No            MLC          MT29F32G08CBABA      1                  Reserved (0)
No            SLC          MT29F1G08AACWP       1                  0
Yes           MLC          MT29F32G08CBADA      1                  08h
Yes           MLC          MT29F64G08CBABA      2                  08h

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Acked-by: Huang Shijie <b32955@freescale.com>
2014-01-13 23:13:05 -08:00
..
bbm.h mtd: nand_bbt: kill NAND_BBT_SCANALLPAGES 2013-11-06 23:33:14 -08:00
blktrans.h mtd_blktrans_ops->release() should return void 2013-05-05 21:31:22 -04:00
cfi_endian.h
cfi.h
concat.h
doc2000.h mtd: diskonchip: use inline functions for DocRead/DocWrite 2012-11-16 10:57:38 +02:00
flashchip.h
fsmc.h mtd: nand: fsmc: update of OF support 2013-08-05 20:48:49 +01:00
ftl.h
gen_probe.h
inftl.h
latch-addr-flash.h
lpc32xx_mlc.h mtd: lpc32xx_mlc: Make driver independent of AMBA DMA engine driver 2012-09-29 14:53:08 +01:00
lpc32xx_slc.h mtd: lpc32xx_slc: Make driver independent of AMBA DMA engine driver 2012-09-29 14:52:45 +01:00
map.h mtd: map: fixed bug in 64-bit systems 2013-11-06 23:32:59 -08:00
mtd.h mtd: Move major number definitions to major.h 2013-11-06 23:32:59 -08:00
mtdram.h
nand_bch.h
nand_ecc.h
nand-gpio.h
nand.h mtd: nand: support Micron READ RETRY 2014-01-13 23:13:05 -08:00
ndfc.h
nftl.h
onenand_regs.h
onenand.h
partitions.h mtd: make register_mtd_parser return void 2014-01-03 11:22:22 -08:00
pfow.h
physmap.h mtd: physmap: add const qualifiers 2013-04-05 13:02:40 +01:00
pismo.h
plat-ram.h mtd: plat-ram: add const quilifiers 2013-04-05 13:02:33 +01:00
qinfo.h
sh_flctl.h mtd: sh_flctl: Add DMA capabilty 2012-11-15 15:37:50 +02:00
sharpsl.h
spear_smi.h
super.h
ubi.h UBI: modify ubi_wl_flush function to clear work queue for a lnum 2012-05-21 11:34:41 +03:00
xip.h