u-boot-2016/drivers
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
..
adc sandbox: add ADC driver 2015-11-02 10:38:00 +09:00
bios_emulator Various Makefiles: Add SPDX-License-Identifier tags 2015-11-10 09:19:52 -05:00
block Fix typo: firstly -> first. 2015-12-05 18:22:23 -05:00
bootcount bootcount: Correct #endif comment to match, other aesthetics 2016-01-08 10:15:43 -05:00
clk qca: move ARM specific files to another sublevel 2017-01-06 12:33:30 +05:30
core dm: core: Fix Kconfig text to mention SPL in SPL_OF_TRANSLATE 2015-12-10 20:41:56 -07:00
cpu x86: Move MP initialization codes into a common place 2015-07-14 18:03:16 -06:00
crypto drivers/crypto/fsl: fix endianness issue in RNG 2015-12-15 08:57:35 +08:00
ddr move erratum a008336 and a008514 to soc specific file 2015-12-15 08:57:32 +08:00
demo drivers: hierarchize drivers Kconfig menu 2015-08-12 20:47:44 -04:00
dfu dfu: dfu_sf: Pass duplicate devstr to parse_dev 2015-11-03 17:29:33 +01:00
dma qca: move ARM specific files to another sublevel 2017-01-06 12:33:30 +05:30
fpga Move console definitions into a new console.h file 2015-11-19 20:27:50 -07:00
gpio ipq807x: Deinit pcie before loading kernel 2017-06-29 08:53:06 -07:00
hwmon Fix bad return value checks (detected with Coccinelle) 2015-10-24 13:50:30 -04:00
i2c ipq807x: Fix various KW warnings in drivers 2017-09-07 04:17:21 -07:00
input Move console definitions into a new console.h file 2015-11-19 20:27:50 -07:00
led dm: led: Tidy up SPL options for the led and led-gpio 2015-09-02 21:28:22 -06:00
memory Various Makefiles: Add SPDX-License-Identifier tags 2015-11-10 09:19:52 -05:00
misc Move console definitions into a new console.h file 2015-11-19 20:27:50 -07:00
mmc ipq807x: mmc: Enabled SDHCI ADMA support 2017-11-03 02:52:37 -07:00
mtd mtd: nand: qcom: reorganize read page error handling 2017-11-07 03:33:45 -08:00
net ipq807x: Download firmware only if board has AQ PHY 2017-11-01 06:01:14 -07:00
pci ipq807x: Fix various KW warnings in drivers 2017-09-07 04:17:21 -07:00
pcmcia powerpc: mpc824x: remove MPC824X cpu support 2015-01-05 12:08:55 -05:00
pinctrl rockchip: rk3036: Add pinctrl driver 2015-12-01 08:07:22 -07:00
power sunxi: power: axp818: add support for axp818 driver 2015-12-10 11:14:22 +01:00
pwm pwm: imx: Remove unreachable code 2015-05-26 14:13:12 +02:00
qe driver/qe: use strncpy instead of strcpy 2015-08-03 12:06:36 -07:00
ram ram: rename CONFIG_SPL_RAM_SUPPORT to CONFIG_SPL_RAM 2015-08-18 13:46:02 -04:00
remoteproc drivers: remoteproc: rproc-uclass: Fix check for NULL pointers 2015-12-05 18:22:32 -05:00
rtc rtc: Add MCP79411 support to DS1307 rtc driver 2015-11-04 15:19:12 -08:00
serial ipq807x: Fix various KW warnings in drivers 2017-09-07 04:17:21 -07:00
soc Various Makefiles: Add SPDX-License-Identifier tags 2015-11-10 09:19:52 -05:00
sound of: clean up OF_CONTROL ifdef conditionals 2015-08-18 13:46:05 -04:00
spi spi: qcom: Fix spi probe issue 2017-06-15 15:34:37 +05:30
thermal imx: mx7: fix the temperature checking for Rev1.1 2016-01-07 17:53:11 +01:00
timer x86: Move i8254_init() to x86_cpu_init_f() 2015-12-09 17:44:44 +08:00
tpm dm: tpm: Drop CONFIG_DM_TPM 2015-10-23 09:42:28 -06:00
twserial drivers: convert makefiles to Kbuild style 2013-10-31 13:26:01 -04:00
usb ipq807x: Fix various KW warnings in drivers 2017-09-07 04:17:21 -07:00
video Merge branch 'master' of git://www.denx.de/git/u-boot-imx 2015-12-04 08:21:28 -05:00
watchdog imx_watchdog: always set minimal timeout in reset_cpu 2016-01-07 17:54:53 +01:00
Kconfig dm: adc: add simple ADC uclass implementation 2015-11-02 10:38:00 +09:00
Makefile Fix compilation errors in clk driver 2016-09-29 21:03:49 +05:30