u-boot-2016/arch
Abhishek Sahu e2d3adc527 mtd: nand: qcom: reorganize read page error handling
Following are the major issues in current implementation for
checking the read errors

1. For checking the erased CW, NAND_ERASED_CW_DETECT_STATUS
   is being read inside qpic_nand_check_status. The
   qpic_nand_check_status will be called after complete page read
   so reading status register won’t help in getting the register
   value after each CW reads.
2. The mtd layer expects the driver to return non-negative
   integer representing the maximum number of bitflips that were
   corrected on any one ecc region. The mtd layer takes care of
   returning EUCLEAN based on returned number.
3. mtd->ecc_stats is only applicable when ECC engine is
   doing ECC correction. For raw reads, the stats should not be
   incremented.

Now the changes have been done to reorganize the error handling

1. schedule the NAND_ERASED_CW_DETECT_STATUS reading after
   every CW read and check the same if ECC engine generates
   uncorrectable error.
2. For raw read, the ECC engine will never generate the
   uncorrectable error or erased CW so check only
   NAND_FLASH_STATUS.
3. The qpic_nand_read_oob should return the maximum number
   of bitflips that were corrected on any one ecc region so
   introduce the max_bitflips for maintaining the same.
4. The read should return the complete data in case of
   BADMSG so move the BADMSG check in the main read function.

Change-Id: Ibef56294ace00d7cd67b501f623fb1d3aeb2c6ec
Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
2017-11-07 03:33:45 -08:00
..
arc axs103: add support of generic OHCI USB 1.1 controller 2015-12-21 23:29:04 +03:00
arm mtd: nand: qcom: reorganize read page error handling 2017-11-07 03:33:45 -08:00
avr32 avr32: Use the generic bitops headers 2015-11-05 10:52:31 -05:00
blackfin Move console definitions into a new console.h file 2015-11-19 20:27:50 -07:00
m68k m68k: add private libgcc 2015-12-13 20:22:00 -05:00
microblaze microblaze: Enable DM by default 2015-12-18 13:15:58 +01:00
mips MIPS: qca953x: Enable Support for AP147 Target 2016-12-21 22:20:30 -08:00
nds32 nds32: Use the generic bitops headers 2015-11-05 10:52:21 -05:00
nios2 nios2: display altera sysid at startup 2015-12-19 09:51:19 +08:00
openrisc openrisc: updating build tools naming convention 2015-11-12 18:13:20 -05:00
powerpc powerpc: Various typo fixes under arch/powerpc/cpu/mpc83xx 2016-01-08 10:15:43 -05:00
sandbox test: add sandbox timer to test.dts 2016-01-07 10:27:07 -07:00
sh Move console definitions into a new console.h file 2015-11-19 20:27:50 -07:00
sparc sparc: Remove non-generic board init files: board.c, time.c 2015-12-03 13:15:50 +02:00
x86 x86: Remove HAVE_ACPI_RESUME 2015-12-09 17:44:56 +08:00
.gitignore .gitignore: drop include/asm/proc from ignore pattern 2014-06-19 11:18:54 -04:00
Kconfig m68k: add private libgcc 2015-12-13 20:22:00 -05:00