OpenCloudOS-Kernel/drivers/mtd/nand
Roger Quadros 40ddbf5069 mtd: nand: omap: Fix 1-bit Hamming code scheme, omap_calculate_ecc()
commit 65b97cf6b8 introduced in v3.7 caused a regression
by using a reversed CS_MASK thus causing omap_calculate_ecc to
always fail. As the NAND base driver never checks for .calculate()'s
return value, the zeroed ECC values are used as is without showing
any error to the user. However, this won't work and the NAND device
won't be guarded by any error code.

Fix the issue by using the correct mask.

Code was tested on omap3beagle using the following procedure
- flash the primary bootloader (MLO) from the kernel to the first
NAND partition using nandwrite.
- boot the board from NAND. This utilizes OMAP ROM loader that
relies on 1-bit Hamming code ECC.

Fixes: 65b97cf6b8 (mtd: nand: omap2: handle nand on gpmc)

Cc: <stable@vger.kernel.org>	[3.7+]
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-08-25 16:15:33 -07:00
..
bcm47xxnflash mtd: bcm47xxnflash: Use devm_kzalloc 2013-11-06 23:32:56 -08:00
gpmi-nand mtd: gpmi: make blockmark swapping optional 2014-07-27 22:06:31 -07:00
Kconfig MTD updates for 3.15: 2014-04-07 10:17:30 -07:00
Makefile mtd: nand: add ONFI timing mode to nand_timings converter 2014-07-21 19:39:55 -07:00
ams-delta.c mtd: delete non-required instances of include <linux/init.h> 2014-03-10 22:42:22 -07:00
atmel_nand.c mtd: atmel_nand: NFC: support multiple interrupt handling 2014-07-21 20:05:36 -07:00
atmel_nand_ecc.h mtd: at91: atmel_nand: add Programmable Multibit ECC controller support 2012-07-06 18:23:25 +01:00
atmel_nand_nfc.h mtd: atmel_nand: add NFC status error check 2014-07-21 20:02:01 -07:00
au1550nd.c MIPS: Alchemy: remove au_read/write/sync 2014-07-30 13:56:34 +02:00
bf5xx_nand.c mtd: bf5xx_nand: drop no-op PM support 2014-07-02 17:42:57 -07:00
cafe_nand.c mtd: nand: kill the the NAND_MAX_PAGESIZE/NAND_MAX_OOBSIZE for nand_buffers{} 2014-03-10 22:42:22 -07:00
cmx270_nand.c mtd: cmx270_nand: Remove unnecessary OOM messages 2014-01-03 11:22:29 -08:00
cs553x_nand.c mtd: cs553x_nand: Remove unnecessary OOM messages 2014-01-03 11:22:29 -08:00
davinci_nand.c mtd: davinci-nand: disable subpage write for keystone-nand 2014-04-30 15:26:49 -07:00
denali.c mtd: denali: use 8 bytes for READID command 2014-07-14 18:41:40 -07:00
denali.h mtd: denali: kill the NAND_MAX_PAGESIZE/NAND_MAX_OOBSIZE 2014-01-11 12:20:15 -08:00
denali_dt.c mtd: denali_dt: Use devm_ioremap_resource() 2014-03-25 23:21:08 -07:00
denali_pci.c mtd: denali: Drop print of build date/time 2014-01-09 08:52:48 -08:00
diskonchip.c mtd: diskonchip: mem resource name is not optional 2014-03-31 18:43:22 -07:00
docg4.c mtd: nand: refactor erase_cmd() to return chip status 2014-05-09 13:19:42 -07:00
fsl_elbc_nand.c mtd: eLBC NAND: fix subpage write support 2014-05-20 16:35:31 -07:00
fsl_ifc_nand.c mtd: fsl_ifc_nand: Workaround bogus WP on 16-bit NAND 2014-05-20 17:36:34 -07:00
fsl_upm.c drivers: clean-up prom.h implicit includes 2013-10-09 20:04:04 -05:00
fsmc_nand.c mtd: fsmc_nand: use dev_warn() instead of printk() 2014-01-07 10:07:03 -08:00
gpio.c mtd: delete non-required instances of include <linux/init.h> 2014-03-10 22:42:22 -07:00
jz4740_nand.c mtd: jz4740_nand: Remove unnecessary OOM messages 2014-01-03 11:22:30 -08:00
lpc32xx_mlc.c mtd: lpc32xx: drop bitflip_threshold initialization 2014-07-01 18:55:02 -07:00
lpc32xx_slc.c mtd: lpc32xx: drop bitflip_threshold initialization 2014-07-01 18:55:02 -07:00
mpc5121_nfc.c mtd: delete non-required instances of include <linux/init.h> 2014-03-10 22:42:22 -07:00
mxc_nand.c mtd: mxc_nand: Propagate the error if platform_get_irq() fails 2014-03-10 22:42:26 -07:00
nand_base.c Linux 3.16-rc6 2014-07-21 00:01:16 -07:00
nand_bbt.c mtd: Introduce mtd_block_isreserved() 2014-07-08 18:38:16 -07:00
nand_bch.c mtd: cleanup style on pr_debug messages 2011-09-11 15:02:16 +03:00
nand_ecc.c mtd: nand: add line feed to pr_err 2014-04-16 00:18:26 -07:00
nand_ids.c mtd: nand: add support for SanDisk SDTNRGAMA-008G 2014-03-10 22:42:22 -07:00
nand_timings.c mtd: nand: add ONFI timing mode to nand_timings converter 2014-07-21 19:39:55 -07:00
nandsim.c replace checking for ->read/->aio_read presence with check in ->f_mode 2014-05-06 17:32:55 -04:00
ndfc.c drivers: clean-up prom.h implicit includes 2013-10-09 20:04:04 -05:00
nuc900_nand.c mtd: nuc900_nand: NULL dereference in nuc900_nand_enable() 2014-03-10 22:42:27 -07:00
omap2.c mtd: nand: omap: Fix 1-bit Hamming code scheme, omap_calculate_ecc() 2014-08-25 16:15:33 -07:00
orion_nand.c mtd: orion_nand: Make of_device_id array const 2014-05-20 16:35:30 -07:00
pasemi_nand.c mtd: delete non-required instances of include <linux/init.h> 2014-03-10 22:42:22 -07:00
plat_nand.c mtd: plat_nand: remove redundant return value check of platform_get_resource() 2014-01-20 11:37:29 -08:00
pxa3xx_nand.c mtd: pxa3xx_nand: make the driver work on big-endian systems 2014-05-28 13:27:37 -07:00
r852.c mtd: nand: r852: correct write_buf loop bounds 2014-05-28 00:05:26 -07:00
r852.h mtd: r852: remove useless pci powerup/down from suspend/resume routines 2010-10-25 01:32:21 +01:00
s3c2410.c mtd: s3c2410: Move to clk_prepare_enable/clk_disable_unprepare 2014-07-02 15:19:22 -07:00
sh_flctl.c PM / QoS: Rename device resume latency QoS items 2014-02-11 00:35:23 +01:00
sharpsl.c mtd: sharpsl: use dev_err() instead of printk() 2014-01-07 10:07:31 -08:00
sm_common.c mtd: nand: refactor chip->block_markbad interface 2013-08-30 16:47:52 +01:00
sm_common.h mtd: sm_common: split smartmedia and xD table 2010-05-14 01:03:46 +01:00
socrates_nand.c MTD merge for 3.13 2013-11-14 12:31:43 +09:00
tmio_nand.c mtd: tmio_nand: Use devm_*() functions 2014-01-03 11:22:28 -08:00
txx9ndfmc.c mtd: txx9ndfmc: Remove unnecessary OOM messages 2014-01-03 11:22:30 -08:00
xway_nand.c mtd: lantiq: Add NAND support on Lantiq XWAY SoC. 2012-09-29 15:05:18 +01:00