u-boot-brain/drivers
Darwin Dingel 1711add3dc mtd: nand: fsl_ifc: Fix handling of bitflips in erased pages
This is a fix made for the fsl_ifc_nand driver on linux kernel by
Pavel Machek and is applied to uboot. It is currently on applied on
linux-mtd.

https://patchwork.kernel.org/patch/9758117/

IFC always raises ECC errors on erased pages. It is only ignored when
the buffer is checked for all 0xFF by is_blank(). The problem is a
single bitflip will cause is_blank() and then mtd_read to fail. The fix
makes use of nand_check_erased_ecc_chunk() to check for empty pages
instead of is_blank(). This also makes sure that reads are made at ECC
page size granularity to get a proper bitflip count. If the number of
bitflips does not exceed the ECC strength, the page is considered empty
and the bitflips will be corrected when data is sent to the higher
layers (e.g. ubi).

Signed-off-by: Darwin Dingel <darwin.dingel@alliedtelesis.co.nz>
Cc: Pavel Machek <pavel@denx.de>
Cc: Scott Wood <oss@buserror.net>
Acked-by: Pavel Machek <pavel@denx.de>
[Kurt: Replaced dev_err by printf due to compiler warnings]
Tested-by: Kurt Kanzenbach <kurt@linutronix.de>
Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
Reviewed-by: York Sun <york.sun@nxp.com>
2018-08-10 10:35:51 -07:00
..
adc adc: Add driver for STM32 ADC 2018-08-03 19:53:10 -04:00
ata scsi: ceva: add ls1012a soc support 2018-07-26 10:59:35 -07:00
bios_emulator bios_emulator: remove assignment without effect 2018-07-23 14:33:21 -04:00
block block: Add SPL_BLOCK_CACHE and default n 2018-06-18 14:43:13 -04:00
bootcount bootcount: Fix misaligned cache operation 2018-08-03 19:53:54 -04:00
clk clk: clk_set_default: accept no-op skip fields 2018-08-04 14:50:10 -04:00
core dm: core: device: enable power domain in probe 2018-08-06 11:52:00 +02:00
cpu cpu: bmips: fix probe to get the address 2018-07-11 14:23:55 +02:00
crypto SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ddr drivers/ddr/fsl: fix '__hwconfig without a buffer' messages 2018-07-26 11:54:00 -07:00
demo SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dfu SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dma SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fastboot usb: fastboot: Convert USB f_fastboot to shared fastboot 2018-05-30 11:59:21 +02:00
firmware SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fpga drivers: fpga: zynqpl: fix compilation with SPL 2018-07-19 10:49:57 +02:00
gpio GPIO: CREG: improve flexibility of hsdk-creg-gpio driver 2018-07-31 07:49:47 +03:00
i2c i2c: imx_lpi2c: add uclass api support 2018-08-06 14:28:23 +02:00
input SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
led led: bcm6328: read base address in the parent node 2018-07-11 14:23:55 +02:00
mailbox SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
memory SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
misc armv8: ls1046a: add icid setup for qman portals 2018-08-10 10:35:36 -07:00
mmc Merge branch 'master' of git://git.denx.de/u-boot-sunxi 2018-08-04 19:41:30 -04:00
mtd mtd: nand: fsl_ifc: Fix handling of bitflips in erased pages 2018-08-10 10:35:51 -07:00
net fsl/mc: Limit the ethernet name to ETH_NAME_LEN 2018-08-08 08:23:49 -07:00
nvme SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pch SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pci FSL PCI: Configure PCIe reference ratio 2018-08-08 08:23:48 -07:00
pcmcia SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
phy phy: sun4i-usb: Update PHY#3 rst_mask only for H3_H5 2018-07-31 11:41:49 +05:30
pinctrl pinctrl: renesas: Fix register usage in sh_pfc_{read,write} 2018-06-19 06:15:55 +02:00
power power: Add CONFIG_SPL_POWER_DOMAIN config 2018-08-06 11:51:10 +02:00
pwm pwm: sunxi: add support for PWM found on Allwinner A64 2018-05-15 08:18:09 +02:00
qe SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ram ram: bmips: convert to use live dt 2018-06-01 15:56:02 +02:00
remoteproc SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
reset misc: stm32: Add STM32MP1 support 2018-07-20 15:55:05 -04:00
rtc Patch queue for efi - 2018-07-25 2018-07-30 16:02:29 -04:00
scsi SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
serial sandbox: Don't disable ctrlc() on sandbox if in raw mode 2018-07-26 14:08:17 -05:00
smem drivers: smem: sandbox 2018-07-19 16:31:38 -04:00
soc SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sound SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
spi arm: sunxi: Allwinner A10 SPI driver 2018-08-03 11:14:08 +05:30
spmi SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sysreset Merge git://git.denx.de/u-boot-x86 2018-07-20 19:31:30 -04:00
thermal SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
timer x86: timer: tsc: Allow specifying clock rate from device tree again 2018-07-02 09:23:28 +08:00
tpm tpm: make TPM_V2 be compiled by default 2018-07-28 11:58:09 -04:00
usb sunxi: A64: OHCI: prevent turning off shared USB clock 2018-07-05 11:25:50 +02:00
video Merge branch 'master' of git://git.denx.de/u-boot-video 2018-08-07 07:15:20 -04:00
watchdog watchdog: cadence: Do not stop wdt in probe 2018-07-19 10:49:56 +02:00
Kconfig soc: qualcomm: Add Shared Memory Manager driver 2018-07-19 16:31:37 -04:00
Makefile power: Add CONFIG_SPL_POWER_DOMAIN config 2018-08-06 11:51:10 +02:00