linux-xiaomi-chiron/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 mtd: nand: ams-delta: return error code of nand_scan() on error 2016-11-07 14:48:41 +01:00
au1550nd.c mtd: nand: au1550nd: set ECC algorithm explicitly 2016-05-05 23:51:53 +02:00
bf5xx_nand.c mtd: nand: import nand_hw_control_init() 2016-09-23 09:35:16 +02:00
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 mtd: nand: cs553x: return error code of nand_scan() on error 2016-11-07 14:48:42 +01:00
davinci_nand.c mtd: nand: davinci: set ECC algorithm explicitly for HW based ECC 2017-05-15 12:00:46 +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
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
diskonchip.c mtd: nand: diskonchip: switch to mtd_ooblayout_ops 2016-05-05 23:51:40 +02:00
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 mtd: nand: fsl_upm: set ECC algorithm explicitly 2016-05-05 23:51:54 +02:00
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 mtd: nand: jz4780: Update MODULE_AUTHOR email address 2016-07-11 08:40:19 +02:00
jz4780_bch.h mtd: nand: jz4780: driver for NAND devices on JZ4780 SoCs 2016-01-07 09:35:11 -08:00
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 mtd: nand_bbt: scan for next free bbt block if writing bbt fails 2016-09-23 09:35:16 +02:00
nand_bch.c mtd: nand_bch: fix spelling of "probably" 2016-05-06 09:45:45 -07:00
nand_ecc.c mtd: nand: return consistent error codes in ecc.correct() implementations 2016-01-06 18:45:46 -08:00
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 mtd: nand: Add a few more timings to nand_sdr_timings 2016-11-07 14:48:37 +01:00
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 mtd: nand: import nand_hw_control_init() 2016-09-23 09:35:16 +02:00
nuc900_nand.c mtd: nand: nuc900: set ECC algorithm explicitly 2016-04-19 22:05:32 +02:00
omap2.c mtd: nand: omap2: Fix partition creation via cmdline mtdparts 2017-04-25 14:18:40 +02:00
omap_elm.c mtd: omap_elm: print interrupt resource using %pr 2015-12-18 10:16:17 -08:00
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 mtd: nand: pasemi: return error code of nand_scan() on error 2016-11-07 14:48:45 +01:00
plat_nand.c mtd: nand: plat_nand: return error code of nand_scan() on error 2016-11-07 14:48:45 +01:00
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 mtd: nand: make use of nand_set/get_controller_data() helpers 2016-01-07 10:23:41 -08:00
r852.h mtd: nand: r852: use the mtd instance embedded in struct nand_chip 2015-12-18 10:54:41 -08:00
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 mtd: nand: sharpsl: switch to mtd_ooblayout_ops 2016-05-05 23:51:36 +02:00
sm_common.c mtd: nand: sm_common: switch to mtd_ooblayout_ops 2016-05-05 23:51:48 +02:00
sm_common.h mtd: use __packed shorthand 2014-08-19 11:53:08 -07:00
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 mtd: nand: tmio: return error code of nand_scan() on error 2016-11-07 14:48:44 +01:00
txx9ndfmc.c mtd: nand: import nand_hw_control_init() 2016-09-23 09:35:16 +02:00
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