linux/drivers/mtd/nand
Martin Blumenstingl fd213b5bae mtd: nand: hynix: add support for 20nm NAND chips
According to the datasheet of the H27UCG8T2BTR the NAND Technology field
(6th byte of the "Device Identifier Description", bits 0-2) the
following values are possible:
- 0x0 = 48nm
- 0x1 = 41nm
- 0x2 = 32nm
- 0x3 = 26nm
- 0x4 = 20nm
- (all others are reserved)

Fix this by extending the mask for this field to allow detecting value
0x4 (20nm) as valid NAND technology.
Without this the detection of the ECC requirements fails, because the
code assumes that the device is a 48nm device (0x4 & 0x3 = 0x0) and
aborts with "Invalid ECC requirements" because it cannot map the "ECC
Level". Extending the mask makes the ECC requirement detection code
recognize this chip as <= 26nm and sets up the ECC step size and ECC
strength correctly.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Fixes: 78f3482d74 ("mtd: nand: hynix: Rework NAND ID decoding to extract more information")
Cc: <stable@vger.kernel.org>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
2017-08-23 16:49:21 +02:00
..
atmel mtd: nand: atmel: drop unused include 2017-06-13 15:06:55 +02:00
bcm47xxnflash mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
brcmnand mtd: nand: brcmnand: Check flash #WP pin status before nand erase/program 2017-04-25 14:18:42 +02:00
gpmi-nand mtd: nand: gpmi: fix typo in comment 2017-06-10 12:09:28 +02:00
ams-delta.c
au1550nd.c
bf5xx_nand.c
cafe_nand.c mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
cmx270_nand.c drivers/mtd: Convert remaining uses of pr_warning to pr_warn 2017-04-19 13:10:54 -07:00
cs553x_nand.c
davinci_nand.c mtd: nand: davinci: set ECC algorithm explicitly for HW based ECC 2017-05-15 12:00:46 +02:00
denali_dt.c mtd: nand: denali: Handle return value of clk_prepare_enable. 2017-08-23 16:49:18 +02:00
denali_pci.c mtd: nand: denali: avoid magic numbers and rename for clarification 2017-06-20 09:14:57 +02:00
denali.c mtd: nand: denali: avoid magic numbers and rename for clarification 2017-06-20 09:14:57 +02:00
denali.h mtd: nand: denali: avoid magic numbers and rename for clarification 2017-06-20 09:14:57 +02:00
diskonchip.c
docg4.c mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
fsl_elbc_nand.c mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
fsl_ifc_nand.c mtd: nand: ifc: Initialize SRAM for all version >= 1.0 2017-06-20 09:17:25 +02:00
fsl_upm.c
fsmc_nand.c mtd: nand: Pass the CS line to ->setup_data_interface() 2017-06-01 10:09:28 +02:00
gpio.c mtd: nand: gpio: make nCE GPIO optional 2017-03-16 10:34:27 +01:00
hisi504_nand.c mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
jz4740_nand.c mtd: nand: jz4740: Let the pinctrl driver configure the pins 2017-05-22 17:22:42 +02:00
jz4780_bch.c
jz4780_bch.h
jz4780_nand.c mtd: nand: jz4780: Use mtd_set_ooblayout() to set the ooblayout 2017-05-15 12:00:36 +02:00
Kconfig mtd: nand: pxa3xx_nand: enable building on mvebu 64-bit platforms 2017-08-23 16:49:18 +02:00
lpc32xx_mlc.c mtd: nand: lpc32xx_mlc: Handle return value of clk_prepare_enable. 2017-08-23 16:49:20 +02:00
lpc32xx_slc.c mtd: nand: lpc32xx_slc: Handle return value of clk_prepare_enable. 2017-08-23 16:49:19 +02:00
Makefile mtd: nand: Cleanup/rework the atmel_nand driver 2017-04-25 14:18:29 +02:00
mpc5121_nfc.c mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
mtk_ecc.c mtd: nand: mtk: release lock on error path 2017-07-03 13:39:09 +02:00
mtk_ecc.h mtd: nand: mediatek: add support for different MTK NAND FLASH Controller IP 2017-06-01 10:09:37 +02:00
mtk_nand.c mtd: nand: mtk: add ->setup_data_interface() hook 2017-06-25 16:54:03 +02:00
mxc_nand.c mtd: nand: mxc: Fix mxc_v1 ooblayout 2017-08-23 16:49:21 +02:00
nand_amd.c mtd: nand: Move AMD/Spansion specific init/detection logic in nand_amd.c 2017-03-08 23:21:22 +01:00
nand_base.c mtd: nand: remove hard-coded NAND ids length 2017-08-23 16:49:13 +02:00
nand_bbt.c
nand_bch.c
nand_ecc.c
nand_hynix.c mtd: nand: hynix: add support for 20nm NAND chips 2017-08-23 16:49:21 +02:00
nand_ids.c mtd: nand: drop unneeded module.h include 2017-05-22 09:42:29 +02:00
nand_macronix.c mtd: nand: Move Macronix specific initialization in nand_macronix.c 2017-03-08 23:21:23 +01:00
nand_micron.c mtd: nand: Wait for PAGEPROG to finish in drivers setting NAND_ECC_CUSTOM_PAGE_ACCESS 2017-06-01 10:09:33 +02:00
nand_samsung.c mtd: nand: samsung: warn about un-parseable ECC info 2017-05-22 09:42:29 +02:00
nand_timings.c
nand_toshiba.c mtd: nand: Move Toshiba specific init/detection logic in nand_toshiba.c 2017-03-08 23:21:21 +01:00
nandsim.c MTD updates for 4.12-rc1: 2017-05-11 10:44:22 -07:00
ndfc.c
nuc900_nand.c
omap2.c mtd: nand: omap2: Fix partition creation via cmdline mtdparts 2017-04-25 14:18:40 +02:00
omap_elm.c
orion_nand.c mtd: orion-nand: fix build error with ARMv4 2017-08-23 16:49:18 +02:00
oxnas_nand.c mtd: oxnas_nand: Handle clk_prepare_enable/clk_disable_unprepare. 2017-08-23 16:49:19 +02:00
pasemi_nand.c
plat_nand.c
pxa3xx_nand.c mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
qcom_nandc.c mtd: nand: qcom: reorganize nand devices probing 2017-08-23 16:49:17 +02:00
r852.c
r852.h
s3c2410.c mtd: nand: Pass the CS line to ->setup_data_interface() 2017-06-01 10:09:28 +02:00
sh_flctl.c mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
sharpsl.c
sm_common.c
sm_common.h
socrates_nand.c mtd: nand: socrates: use nand_scan() for nand_scan_ident/tail() combo 2016-11-07 14:48:53 +01:00
sunxi_nand.c mtd: nand: sunxi: explicitly request exclusive reset control 2017-08-23 16:49:21 +02:00
tango_nand.c This pull request contains the following core changes: 2017-07-07 18:03:11 -07:00
tmio_nand.c
txx9ndfmc.c
vf610_nfc.c mtd: nand: vf610: Remove unneeded pinctrl_pm_select_default_state() 2017-08-23 16:49:14 +02:00
xway_nand.c mtd: update my email address 2017-02-08 12:49:27 -08:00