Skip to contentSkip to conversation

mtd: nand: Changes for 5.8

GIT PULL Miquel Raynal 2 participants 2 messages May 31, 2020 – Jun 1, 2020 Memory technology devices (MTD)

lore
Share & tools
lore

Miquel Raynal

author maintainer
#0 lore raw

Hi Richard,

This is the NAND PR for 5.8.

I just updated it this morning to fix an issue reported by a build robot in a !COMPILE_TEST driver due to some recent cleanup.

Thanks,
Miquèl

The following changes since commit 6a8b55ed4056ea5559ebe4f6a4b247f627870d4c:

Linux 5.7-rc3 (2020-04-26 13:51:02 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git tags/nand/for-5.8

for you to fetch changes up to 86f2b225adf4ecd2edfdc8541a7342645556ac3b:

mtd: rawnand: Add an invalid ECC mode to discriminate with valid ones (2020-05-31 10:53:41 +0200)

----------------------------------------------------------------
Raw NAND core changes:
* Stop using nand_release(), patched all drivers.
* Give more information about the ECC weakness when not matching the chip's requirement.
* MAINTAINERS updates.
* Support emulated SLC mode on MLC NANDs.
* Support "constrained" controllers, adapt the core and ONFI/JEDEC table parsing and Micron's code.
* Take check_only into account.
* Add an invalid ECC mode to discriminate with valid ones.
* Return an enum from of_get_nand_ecc_algo().
* Drop OOB_FIRST placement scheme.
* Introduce nand_extract_bits().
* Ensure a consistent bitflips numbering.
* BCH lib:
- Allow easy bit swapping.
- Rework a little bit the exported function names.
* Fix nand_gpio_waitrdy().
* Propage CS selection to sub operations.
* Add a NAND_NO_BBM_QUIRK flag.
* Give the possibility to verify a read operation is supported.
* Add a helper to check supported operations.
* Avoid indirect access to ->data_buf().
* Rename the use_bufpoi variables.
* Fix comments about the use of bufpoi.
* Rename a NAND chip option.
* Reorder the nand_chip->options flags.
* Translate obscure bitfields into readable macros.
* Timings:
- Fix default values.
- Add mode information to the timings structure.

Raw NAND controller driver changes:
* Fixed many error paths.
* Arasan
- New driver
* Au1550nd:
- Various cleanups
- Migration to ->exec_op()
* brcmnand:
- Misc cleanup.
- Support v2.1-v2.2 controllers.
- Remove unused including <linux/version.h>.
- Correctly verify erased pages.
- Fix Hamming OOB layout.
* Cadence
- Make cadence_nand_attach_chip static.
* Cafe:
- Set the NAND_NO_BBM_QUIRK flag
* cmx270:
- Remove this controller driver.
* cs553x:
- Misc cleanup
- Migration to ->exec_op()
* Davinci:
- Misc cleanup.
- Migration to ->exec_op()
* Denali:
- Add more delays before latching incoming data
* Diskonchip:
- Misc cleanup
- Migration to ->exec_op()
* Fsmc:
- Change to non-atomic bit operations.
* GPMI:
- Use nand_extract_bits()
- Fix runtime PM imbalance.
* Ingenic:
- Migration to exec_op()
- Fix the RB gpio active-high property on qi, lb60
- Make qi_lb60_ooblayout_ops static.
* Marvell:
- Misc cleanup and small fixes
* Nandsim:
- Fix the error paths, driver wide.
* Omap_elm:
- Fix runtime PM imbalance.
* STM32_FMC2:
- Misc cleanups (error cases, comments, timeout valus, cosmetic changes).

----------------------------------------------------------------
Boris Brezillon (34):
mtd: rawnand: Take check_only into account
mtd: rawnand: au1550nd: Stop using IO_ADDR_{R, W} in au_{read, write}_buf[16]()
mtd: rawnand: au1550nd: Implement exec_op()
mtd: rawnand: au1550nd: Get rid of the legacy interface implementation
mtd: rawnand: au1550nd: Patch the read/write buf helper prototypes
mtd: rawnand: cs553x: Declare controllers instead of NAND chips
mtd: rawnand: cs553x: Stop using chip->legacy.IO_ADDR_{R, W}
mtd: rawnand: cs553x: Implement exec_op()
mtd: rawnand: cs553x: Get rid of the legacy interface implementation
mtd: rawnand: toshiba: Add a specific init for TC58TEG5DCLTA00
mtd: rawnand: Define the "distance 3" MLC pairing scheme
mtd: rawnand: toshiba: Set the pairing scheme for TC58TEG5DCLTA00
mtd: Add support for emulated SLC mode on MLC NANDs
dt-bindings: mtd: partition: Document the slc-mode property
mtd: partitions: ofpart: Parse the slc-mode property
mtd: cmdlinepart: Add an slc option to use SLC mode on a part
ubi: Relax the 'no MLC' rule and allow MLCs operating in SLC mode
mtd: rawnand: Add a NAND_NO_BBM_QUIRK flag
mtd: rawnand: cafe: Set the NAND_NO_BBM_QUIRK flag
mtd: rawnand: diskonchip: Set the NAND_NO_BBM_QUIRK flag
mtd: rawnand: diskonchip: Make sure doc2001plus_readbuf() works for single byte reads
mtd: rawnand: diskonchip: Get rid of doc2000_readbuf_dword()
mtd: rawnand: diskonchip: Inherit from nand_controller
mtd: rawnand: diskonchip: Implement exec_op()
mtd: rawnand: diskonchip: Get rid of the legacy interface implementation
mtd: rawnand: Propage CS selection to sub operations
mtd: rawnand: davinci: Inherit from nand_controller
mtd: rawnand: davinci: Stop using nand_chip.legacy.IO_ADDR_{R, W}
mtd: rawnand: davinci: Implement exec_op()
mtd: rawnand: davinci: Get rid of the legacy interface implementation
mtd: rawnand: Fix nand_gpio_waitrdy()
mtd: rawnand: Remove the cmx270 NAND controller driver
mtd: rawnand: ingenic: Fix the RB gpio active-high property on qi, lb60
mtd: rawnand: ingenic: Convert the driver to exec_op()

Christophe Kerello (5):
mtd: rawnand: stm32_fmc2: manage all errors cases at probe time
mtd: rawnand: stm32_fmc2: remove useless inline comments
mtd: rawnand: stm32_fmc2: use FMC2_TIMEOUT_MS for timeouts
mtd: rawnand: stm32_fmc2: cosmetic change to use nfc instead of fmc2 where relevant
mtd: rawnand: stm32_fmc2: use FIELD_PREP/FIELD_GET macros

Dinghao Liu (3):
mtd: rawnand: gpmi: Fix runtime PM imbalance on error
mtd: rawnand: gpmi: Fix runtime PM imbalance in gpmi_nand_probe
mtd: rawnand: omap_elm: Fix runtime PM imbalance on error

Fenghua Yu (1):
mtd: rawnand: fsmc: Change to non-atomic bit operations

Masahiro Yamada (1):
mtd: rawnand: denali: add more delays before latching incoming data

Miquel Raynal (124):
mtd: rawnand: Give more information about the ECC weakness
mtd: rawnand: marvell: Fix the condition on a return code
mtd: rawnand: marvell: Use devm_platform_ioremap_res()
mtd: rawnand: marvell: Use nand_cleanup() when the device is not yet registered
mtd: rawnand: marvell: Fix probe error path
mtd: rawnand: marvell: Rename a function to clarify
mtd: rawnand: marvell: Rename the ->correct() function
mtd: rawnand: timings: Add mode information to the timings structure
mtd: rawnand: timings: Fix default tR_max and tCCS_min timings
mtd: rawnand: onfi: Fix redundancy detection check
mtd: rawnand: onfi: Use intermediate variables to improve readability
mtd: rawnand: onfi: Define the number of parameter pages
mtd: rawnand: onfi: Avoid doing a copy of the parameter page
mtd: rawnand: onfi: Drop a useless parameter page read
mtd: rawnand: jedec: Define the number of parameter pages
mtd: rawnand: jedec: Use intermediate variables to improve readability
mtd: rawnand: Translate obscure bitfields into readable macros
mtd: rawnand: Reorder the nand_chip->options flags
mtd: rawnand: Rename a NAND chip option
mtd: rawnand: Fix comments about the use of bufpoi
mtd: rawnand: Rename the use_bufpoi variables
mtd: rawnand: Avoid indirect access to ->data_buf()
mtd: rawnand: Add a helper to check supported operations
mtd: rawnand: Give the possibility to verify a read operation is supported
mtd: rawnand: onfi: Adapt the parameter page read to constraint controllers
mtd: rawnand: jedec: Adapt the parameter page read to constraint controllers
mtd: rawnand: Expose monolithic read/write_page_raw() helpers
mtd: rawnand: Allow controllers to overload soft ECC hooks
mtd: rawnand: micron: Allow controllers to overload raw accessors
MAINTAINERS: Remove Piotr Sroka and mark Cadence NFC as orphaned
MAINTAINERS: Remove Xiaolei Li and mark MTK NFC as orphaned
mtd: rawnand: micron: Adapt the PAGE READ flow to constraint controllers lib/bch: Rework a little bit the exported function names
lib/bch: Allow easy bit swapping
mtd: rawnand: Ensure the number of bitflips is consistent
mtd: rawnand: Add nand_extract_bits()
MAINTAINERS: Add Arasan NAND controller and bindings
dt-bindings: mtd: Document ARASAN NAND bindings
mtd: rawnand: arasan: Add new Arasan NAND controller
mtd: rawnand: arasan: Support the hardware BCH ECC engine
mtd: rawnand: ams-delta: Stop using nand_release()
mtd: rawnand: au1550nd: Stop using nand_release()
mtd: rawnand: bcm47xx: Stop using nand_release()
mtd: rawnand: brcmnand: Stop using nand_release()
mtd: rawnand: cadence: Stop using nand_release()
mtd: rawnand: cafe: Stop using nand_release()
mtd: rawnand: cs553x: Stop using nand_release()
mtd: rawnand: davinci: Stop using nand_release()
mtd: rawnand: denali: Delete items from the list in the _remove() path
mtd: rawnand: denali: Stop using nand_release()
mtd: rawnand: diskonchip: Fix the probe error path
mtd: rawnand: diskonchip: Stop using nand_release()
mtd: rawnand: fsl_elbc: Stop using nand_release()
mtd: rawnand: fsl_ifc: Stop using nand_release()
mtd: rawnand: fsl_upm: Stop using nand_release()
mtd: rawnand: fsmc: Stop using nand_release()
mtd: rawnand: gpio: Stop using nand_release()
mtd: rawnand: gpmi: Stop using nand_release()
mtd: rawnand: hisi504: Stop using nand_release()
mtd: rawnand: ingenic: Fix the probe error path
mtd: rawnand: ingenic: Stop using nand_release()
mtd: rawnand: lpc32xx_mlc: Stop using nand_release()
mtd: rawnand: lpc32xx_slc: Stop using nand_release()
mtd: rawnand: marvell: Stop using nand_release()
mtd: rawnand: mpc5121: Stop using nand_release()
mtd: rawnand: mtk: Fix the probe error path
mtd: rawnand: mtk: Stop using nand_release()
mtd: rawnand: mxc: Stop using nand_release()
mtd: rawnand: mxic: Stop using nand_release()
mtd: rawnand: ndfc: Stop using nand_release()
mtd: rawnand: omap2: Stop using nand_release()
mtd: rawnand: orion: Fix the probe error path
mtd: rawnand: orion: Stop using nand_release()
mtd: rawnand: oxnas: Keep track of registered devices
mtd: rawnand: oxnas: Fix the probe error path
mtd: rawnand: oxnas: Unregister all devices on error
mtd: rawnand: oxnas: Release all devices in the _remove() path
mtd: rawnand: oxnas: Stop using nand_release()
mtd: rawnand: pasemi: Fix the probe error path
mtd: rawnand: pasemi: Stop using nand_release()
mtd: rawnand: plat_nand: Fix the probe error path
mtd: rawnand: plat_nand: Stop using nand_release()
mtd: rawnand: qcom: Stop using nand_release()
mtd: rawnand: r852: Stop using nand_release()
mtd: rawnand: s3c2410: Stop using nand_release()
mtd: rawnand: sh_flctl: Stop using nand_release()
mtd: rawnand: sharpsl: Fix the probe error path
mtd: rawnand: sharpsl: Stop using nand_release()
mtd: rawnand: socrates: Fix the probe error path
mtd: rawnand: socrates: Stop using nand_release()
mtd: rawnand: stm32_fmc2: Stop using nand_release()
mtd: rawnand: sunxi: Fix the probe error path
mtd: rawnand: sunxi: Stop using nand_release()
mtd: rawnand: tango: Stop using nand_release()
mtd: rawnand: tmio: Fix the probe error path
mtd: rawnand: tmio: Stop using nand_release()
mtd: rawnand: txx9ndfmc: Stop using nand_release()
mtd: rawnand: vf610: Stop using nand_release()
mtd: rawnand: xway: Fix the probe error path
mtd: rawnand: xway: Stop using nand_release()
mtd: rawnand: gpmi: Use nand_extract_bits()
mtd: rawnand: nandsim: Consistent use of 'ns' instead of 'dev'
mtd: rawnand: nandsim: Use octal permissions
mtd: rawnand: nandsim: Use a consistent ns_ prefix for all functions
mtd: rawnand: nandsim: Clean error handling
mtd: rawnand: nandsim: Keep track of the created debugfs entries
mtd: rawnand: nandsim: Remove debugfs entries at unload time
mtd: rawnand: nandsim: Fix the two ns_alloc_device() error paths
mtd: rawnand: nandsim: Free partition names on error in ns_init()
mtd: rawnand: nandsim: Free the allocated device on error in ns_init()
mtd: rawnand: nandsim: Free the partition names in ns_free()
mtd: rawnand: nandsim: Stop using nand_release()
mtd: rawnand: nandsim: Use an additional label when freeing the nandsim object
mtd: rawnand: nandsim: Free erase_block_wear on error
mtd: rawnand: nandsim: Fix the label pointing on nand_cleanup()
mtd: rawnand: nandsim: Manage lists on error in ns_init_module()
mtd: rawnand: nandsim: Rename a label in ns_init_module()
mtd: rawnand: nandsim: Reorganize ns_cleanup_module()
mtd: rawnand: Stop using nand_release()
mtd: Fix typo in mtd_ooblayout_set_databytes() description
mtd: rawnand: Avoid a typedef
mtd: rawnand: Drop OOB_FIRST placement scheme
mtd: rawnand: Return an enum from of_get_nand_ecc_algo()
mtd: rawnand: Add an invalid ECC mode to discriminate with valid ones

YueHaibing (3):
mtd: rawnand: ingenic: Make qi_lb60_ooblayout_ops static
mtd: rawnand: cadence: Make cadence_nand_attach_chip static
mtd: rawnand: brcmnand: Remove unused including <linux/version.h>

Álvaro Fernández Rojas (8):
mtd: rawnand: brcmnand: fix hamming oob layout
mtd: rawnand: brcmnand: improve hamming oob layout
mtd: rawnand: brcmnand: correctly verify erased pages
mtd: rawnand: brcmnand: rename v4 registers
mtd: rawnand: brcmnand: fix CS0 layout
mtd: rawnand: brcmnand: rename page sizes
dt-bindings: mtd: brcmnand: add v2.1 and v2.2 support
mtd: rawnand: brcmnand: support v2.1-v2.2 controllers

 Documentation/devicetree/bindings/mtd/arasan,nand-controller.yaml |   63 ++++++++
 Documentation/devicetree/bindings/mtd/brcm,brcmnand.txt           |    2 +
 Documentation/devicetree/bindings/mtd/partition.txt               |    3 +
 Documentation/driver-api/mtdnand.rst                              |    6 +-
 MAINTAINERS                                                       |   13 +-
 drivers/mtd/devices/docg3.c                                       |   10 +-
 drivers/mtd/mtdcore.c                                             |  191 +++++++++++++++++++++--
 drivers/mtd/mtdpart.c                                             |   54 ++++---
 drivers/mtd/nand/raw/Kconfig                                      |   12 +-
 drivers/mtd/nand/raw/Makefile                                     |    2 +-
 drivers/mtd/nand/raw/ams-delta.c                                  |    5 +-
 drivers/mtd/nand/raw/arasan-nand-controller.c                     | 1297 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/mtd/nand/raw/atmel/nand-controller.c                      |    2 +-
 drivers/mtd/nand/raw/au1550nd.c                                   |  417 +++++++++++++++++--------------------------------
 drivers/mtd/nand/raw/bcm47xxnflash/main.c                         |    6 +-
 drivers/mtd/nand/raw/brcmnand/brcmnand.c                          |  164 +++++++++++++------
 drivers/mtd/nand/raw/cadence-nand-controller.c                    |   17 +-
 drivers/mtd/nand/raw/cafe_nand.c                                  |   16 +-
 drivers/mtd/nand/raw/cmx270_nand.c                                |  236 ----------------------------
 drivers/mtd/nand/raw/cs553x_nand.c                                |  199 ++++++++++++++++--------
 drivers/mtd/nand/raw/davinci_nand.c                               |  324 +++++++++++++++++++++++---------------
 drivers/mtd/nand/raw/denali.c                                     |   60 +++++--
 drivers/mtd/nand/raw/diskonchip.c                                 |  497 ++++++++++++++++++++++------------------------------------
 drivers/mtd/nand/raw/fsl_elbc_nand.c                              |    7 +-
 drivers/mtd/nand/raw/fsl_ifc_nand.c                               |    7 +-
 drivers/mtd/nand/raw/fsl_upm.c                                    |    9 +-
 drivers/mtd/nand/raw/fsmc_nand.c                                  |   19 ++-
 drivers/mtd/nand/raw/gpio.c                                       |    6 +-
 drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c                        |  189 +++-------------------
 drivers/mtd/nand/raw/hisi504_nand.c                               |    6 +-
 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c                   |  170 ++++++++++++--------
 drivers/mtd/nand/raw/internals.h                                  |   12 ++
 drivers/mtd/nand/raw/lpc32xx_mlc.c                                |    7 +-
 drivers/mtd/nand/raw/lpc32xx_slc.c                                |    6 +-
 drivers/mtd/nand/raw/marvell_nand.c                               |   68 ++++----
 drivers/mtd/nand/raw/meson_nand.c                                 |    5 +-
 drivers/mtd/nand/raw/mpc5121_nfc.c                                |    5 +-
 drivers/mtd/nand/raw/mtk_nand.c                                   |   19 ++-
 drivers/mtd/nand/raw/mxc_nand.c                                   |    6 +-
 drivers/mtd/nand/raw/mxic_nand.c                                  |   10 +-
 drivers/mtd/nand/raw/nand_base.c                                  |  445 ++++++++++++++++++++++++++++++++--------------------
 drivers/mtd/nand/raw/nand_bch.c                                   |   10 +-
 drivers/mtd/nand/raw/nand_jedec.c                                 |   30 ++--
 drivers/mtd/nand/raw/nand_legacy.c                                |    8 +-
 drivers/mtd/nand/raw/nand_micron.c                                |   65 ++++++--
 drivers/mtd/nand/raw/nand_onfi.c                                  |   69 ++++----
 drivers/mtd/nand/raw/nand_timings.c                               |   11 +-
 drivers/mtd/nand/raw/nand_toshiba.c                               |   14 ++
 drivers/mtd/nand/raw/nandsim.c                                    |  440 +++++++++++++++++++++++++++++----------------------
 drivers/mtd/nand/raw/ndfc.c                                       |    8 +-
 drivers/mtd/nand/raw/omap2.c                                      |    8 +-
 drivers/mtd/nand/raw/omap_elm.c                                   |    1 +
 drivers/mtd/nand/raw/orion_nand.c                                 |    8 +-
 drivers/mtd/nand/raw/oxnas_nand.c                                 |   33 ++--
 drivers/mtd/nand/raw/pasemi_nand.c                                |    9 +-
 drivers/mtd/nand/raw/plat_nand.c                                  |    8 +-
 drivers/mtd/nand/raw/qcom_nandc.c                                 |   13 +-
 drivers/mtd/nand/raw/r852.c                                       |    6 +-
 drivers/mtd/nand/raw/s3c2410.c                                    |    3 +-
 drivers/mtd/nand/raw/sh_flctl.c                                   |    6 +-
 drivers/mtd/nand/raw/sharpsl.c                                    |   14 +-
 drivers/mtd/nand/raw/socrates_nand.c                              |    8 +-
 drivers/mtd/nand/raw/stm32_fmc2_nand.c                            | 1065 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------
 drivers/mtd/nand/raw/sunxi_nand.c                                 |   16 +-
 drivers/mtd/nand/raw/tango_nand.c                                 |   13 +-
 drivers/mtd/nand/raw/tegra_nand.c                                 |    6 +-
 drivers/mtd/nand/raw/tmio_nand.c                                  |    8 +-
 drivers/mtd/nand/raw/txx9ndfmc.c                                  |    6 +-
 drivers/mtd/nand/raw/vf610_nfc.c                                  |   10 +-
 drivers/mtd/nand/raw/xway_nand.c                                  |    8 +-
 drivers/mtd/parsers/cmdlinepart.c                                 |   12 +-
 drivers/mtd/parsers/ofpart.c                                      |    3 +
 drivers/mtd/ubi/build.c                                           |    5 +-
 include/linux/bch.h                                               |   11 +-
 include/linux/mtd/bbm.h                                           |    2 +-
 include/linux/mtd/mtd.h                                           |    7 +-
 include/linux/mtd/partitions.h                                    |    2 +
 include/linux/mtd/rawnand.h                                       |  133 +++++++++-------
 include/linux/platform_data/mtd-davinci.h                         |    2 +-
 include/linux/platform_data/mtd-nand-s3c2410.h                    |    2 +-
 include/uapi/mtd/mtd-abi.h                                        |    1 +
 lib/bch.c                                                         |  152 ++++++++++++------
 82 files changed, 4275 insertions(+), 2553 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/mtd/arasan,nand-controller.yaml
 create mode 100644 drivers/mtd/nand/raw/arasan-nand-controller.c
 delete mode 100644 drivers/mtd/nand/raw/cmx270_nand.c

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

#1 lore raw
Quoted 380 lines · Miquel Raynal

Hi Richard,

This is the NAND PR for 5.8.

I just updated it this morning to fix an issue reported by a build robot in a !COMPILE_TEST driver due to some recent cleanup.

Thanks,
Miquèl

The following changes since commit 6a8b55ed4056ea5559ebe4f6a4b247f627870d4c:

Linux 5.7-rc3 (2020-04-26 13:51:02 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git tags/nand/for-5.8

for you to fetch changes up to 86f2b225adf4ecd2edfdc8541a7342645556ac3b:

mtd: rawnand: Add an invalid ECC mode to discriminate with valid ones (2020-05-31 10:53:41 +0200)

----------------------------------------------------------------
Raw NAND core changes:
* Stop using nand_release(), patched all drivers.
* Give more information about the ECC weakness when not matching the chip's requirement.
* MAINTAINERS updates.
* Support emulated SLC mode on MLC NANDs.
* Support "constrained" controllers, adapt the core and ONFI/JEDEC table parsing and Micron's code.
* Take check_only into account.
* Add an invalid ECC mode to discriminate with valid ones.
* Return an enum from of_get_nand_ecc_algo().
* Drop OOB_FIRST placement scheme.
* Introduce nand_extract_bits().
* Ensure a consistent bitflips numbering.
* BCH lib:
- Allow easy bit swapping.
- Rework a little bit the exported function names.
* Fix nand_gpio_waitrdy().
* Propage CS selection to sub operations.
* Add a NAND_NO_BBM_QUIRK flag.
* Give the possibility to verify a read operation is supported.
* Add a helper to check supported operations.
* Avoid indirect access to ->data_buf().
* Rename the use_bufpoi variables.
* Fix comments about the use of bufpoi.
* Rename a NAND chip option.
* Reorder the nand_chip->options flags.
* Translate obscure bitfields into readable macros.
* Timings:
- Fix default values.
- Add mode information to the timings structure.

Raw NAND controller driver changes:
* Fixed many error paths.
* Arasan
- New driver
* Au1550nd:
- Various cleanups
- Migration to ->exec_op()
* brcmnand:
- Misc cleanup.
- Support v2.1-v2.2 controllers.
- Remove unused including <linux/version.h>.
- Correctly verify erased pages.
- Fix Hamming OOB layout.
* Cadence
- Make cadence_nand_attach_chip static.
* Cafe:
- Set the NAND_NO_BBM_QUIRK flag
* cmx270:
- Remove this controller driver.
* cs553x:
- Misc cleanup
- Migration to ->exec_op()
* Davinci:
- Misc cleanup.
- Migration to ->exec_op()
* Denali:
- Add more delays before latching incoming data
* Diskonchip:
- Misc cleanup
- Migration to ->exec_op()
* Fsmc:
- Change to non-atomic bit operations.
* GPMI:
- Use nand_extract_bits()
- Fix runtime PM imbalance.
* Ingenic:
- Migration to exec_op()
- Fix the RB gpio active-high property on qi, lb60
- Make qi_lb60_ooblayout_ops static.
* Marvell:
- Misc cleanup and small fixes
* Nandsim:
- Fix the error paths, driver wide.
* Omap_elm:
- Fix runtime PM imbalance.
* STM32_FMC2:
- Misc cleanups (error cases, comments, timeout valus, cosmetic changes).

----------------------------------------------------------------
Boris Brezillon (34):
mtd: rawnand: Take check_only into account
mtd: rawnand: au1550nd: Stop using IO_ADDR_{R, W} in au_{read, write}_buf[16]()
mtd: rawnand: au1550nd: Implement exec_op()
mtd: rawnand: au1550nd: Get rid of the legacy interface implementation
mtd: rawnand: au1550nd: Patch the read/write buf helper prototypes
mtd: rawnand: cs553x: Declare controllers instead of NAND chips
mtd: rawnand: cs553x: Stop using chip->legacy.IO_ADDR_{R, W}
mtd: rawnand: cs553x: Implement exec_op()
mtd: rawnand: cs553x: Get rid of the legacy interface implementation
mtd: rawnand: toshiba: Add a specific init for TC58TEG5DCLTA00
mtd: rawnand: Define the "distance 3" MLC pairing scheme
mtd: rawnand: toshiba: Set the pairing scheme for TC58TEG5DCLTA00
mtd: Add support for emulated SLC mode on MLC NANDs
dt-bindings: mtd: partition: Document the slc-mode property
mtd: partitions: ofpart: Parse the slc-mode property
mtd: cmdlinepart: Add an slc option to use SLC mode on a part
ubi: Relax the 'no MLC' rule and allow MLCs operating in SLC mode
mtd: rawnand: Add a NAND_NO_BBM_QUIRK flag
mtd: rawnand: cafe: Set the NAND_NO_BBM_QUIRK flag
mtd: rawnand: diskonchip: Set the NAND_NO_BBM_QUIRK flag
mtd: rawnand: diskonchip: Make sure doc2001plus_readbuf() works for single byte reads
mtd: rawnand: diskonchip: Get rid of doc2000_readbuf_dword()
mtd: rawnand: diskonchip: Inherit from nand_controller
mtd: rawnand: diskonchip: Implement exec_op()
mtd: rawnand: diskonchip: Get rid of the legacy interface implementation
mtd: rawnand: Propage CS selection to sub operations
mtd: rawnand: davinci: Inherit from nand_controller
mtd: rawnand: davinci: Stop using nand_chip.legacy.IO_ADDR_{R, W}
mtd: rawnand: davinci: Implement exec_op()
mtd: rawnand: davinci: Get rid of the legacy interface implementation
mtd: rawnand: Fix nand_gpio_waitrdy()
mtd: rawnand: Remove the cmx270 NAND controller driver
mtd: rawnand: ingenic: Fix the RB gpio active-high property on qi, lb60
mtd: rawnand: ingenic: Convert the driver to exec_op()

Christophe Kerello (5):
mtd: rawnand: stm32_fmc2: manage all errors cases at probe time
mtd: rawnand: stm32_fmc2: remove useless inline comments
mtd: rawnand: stm32_fmc2: use FMC2_TIMEOUT_MS for timeouts
mtd: rawnand: stm32_fmc2: cosmetic change to use nfc instead of fmc2 where relevant
mtd: rawnand: stm32_fmc2: use FIELD_PREP/FIELD_GET macros

Dinghao Liu (3):
mtd: rawnand: gpmi: Fix runtime PM imbalance on error
mtd: rawnand: gpmi: Fix runtime PM imbalance in gpmi_nand_probe
mtd: rawnand: omap_elm: Fix runtime PM imbalance on error

Fenghua Yu (1):
mtd: rawnand: fsmc: Change to non-atomic bit operations

Masahiro Yamada (1):
mtd: rawnand: denali: add more delays before latching incoming data

Miquel Raynal (124):
mtd: rawnand: Give more information about the ECC weakness
mtd: rawnand: marvell: Fix the condition on a return code
mtd: rawnand: marvell: Use devm_platform_ioremap_res()
mtd: rawnand: marvell: Use nand_cleanup() when the device is not yet registered
mtd: rawnand: marvell: Fix probe error path
mtd: rawnand: marvell: Rename a function to clarify
mtd: rawnand: marvell: Rename the ->correct() function
mtd: rawnand: timings: Add mode information to the timings structure
mtd: rawnand: timings: Fix default tR_max and tCCS_min timings
mtd: rawnand: onfi: Fix redundancy detection check
mtd: rawnand: onfi: Use intermediate variables to improve readability
mtd: rawnand: onfi: Define the number of parameter pages
mtd: rawnand: onfi: Avoid doing a copy of the parameter page
mtd: rawnand: onfi: Drop a useless parameter page read
mtd: rawnand: jedec: Define the number of parameter pages
mtd: rawnand: jedec: Use intermediate variables to improve readability
mtd: rawnand: Translate obscure bitfields into readable macros
mtd: rawnand: Reorder the nand_chip->options flags
mtd: rawnand: Rename a NAND chip option
mtd: rawnand: Fix comments about the use of bufpoi
mtd: rawnand: Rename the use_bufpoi variables
mtd: rawnand: Avoid indirect access to ->data_buf()
mtd: rawnand: Add a helper to check supported operations
mtd: rawnand: Give the possibility to verify a read operation is supported
mtd: rawnand: onfi: Adapt the parameter page read to constraint controllers
mtd: rawnand: jedec: Adapt the parameter page read to constraint controllers
mtd: rawnand: Expose monolithic read/write_page_raw() helpers
mtd: rawnand: Allow controllers to overload soft ECC hooks
mtd: rawnand: micron: Allow controllers to overload raw accessors
MAINTAINERS: Remove Piotr Sroka and mark Cadence NFC as orphaned
MAINTAINERS: Remove Xiaolei Li and mark MTK NFC as orphaned
mtd: rawnand: micron: Adapt the PAGE READ flow to constraint controllers lib/bch: Rework a little bit the exported function names
lib/bch: Allow easy bit swapping
mtd: rawnand: Ensure the number of bitflips is consistent
mtd: rawnand: Add nand_extract_bits()
MAINTAINERS: Add Arasan NAND controller and bindings
dt-bindings: mtd: Document ARASAN NAND bindings
mtd: rawnand: arasan: Add new Arasan NAND controller
mtd: rawnand: arasan: Support the hardware BCH ECC engine
mtd: rawnand: ams-delta: Stop using nand_release()
mtd: rawnand: au1550nd: Stop using nand_release()
mtd: rawnand: bcm47xx: Stop using nand_release()
mtd: rawnand: brcmnand: Stop using nand_release()
mtd: rawnand: cadence: Stop using nand_release()
mtd: rawnand: cafe: Stop using nand_release()
mtd: rawnand: cs553x: Stop using nand_release()
mtd: rawnand: davinci: Stop using nand_release()
mtd: rawnand: denali: Delete items from the list in the _remove() path
mtd: rawnand: denali: Stop using nand_release()
mtd: rawnand: diskonchip: Fix the probe error path
mtd: rawnand: diskonchip: Stop using nand_release()
mtd: rawnand: fsl_elbc: Stop using nand_release()
mtd: rawnand: fsl_ifc: Stop using nand_release()
mtd: rawnand: fsl_upm: Stop using nand_release()
mtd: rawnand: fsmc: Stop using nand_release()
mtd: rawnand: gpio: Stop using nand_release()
mtd: rawnand: gpmi: Stop using nand_release()
mtd: rawnand: hisi504: Stop using nand_release()
mtd: rawnand: ingenic: Fix the probe error path
mtd: rawnand: ingenic: Stop using nand_release()
mtd: rawnand: lpc32xx_mlc: Stop using nand_release()
mtd: rawnand: lpc32xx_slc: Stop using nand_release()
mtd: rawnand: marvell: Stop using nand_release()
mtd: rawnand: mpc5121: Stop using nand_release()
mtd: rawnand: mtk: Fix the probe error path
mtd: rawnand: mtk: Stop using nand_release()
mtd: rawnand: mxc: Stop using nand_release()
mtd: rawnand: mxic: Stop using nand_release()
mtd: rawnand: ndfc: Stop using nand_release()
mtd: rawnand: omap2: Stop using nand_release()
mtd: rawnand: orion: Fix the probe error path
mtd: rawnand: orion: Stop using nand_release()
mtd: rawnand: oxnas: Keep track of registered devices
mtd: rawnand: oxnas: Fix the probe error path
mtd: rawnand: oxnas: Unregister all devices on error
mtd: rawnand: oxnas: Release all devices in the _remove() path
mtd: rawnand: oxnas: Stop using nand_release()
mtd: rawnand: pasemi: Fix the probe error path
mtd: rawnand: pasemi: Stop using nand_release()
mtd: rawnand: plat_nand: Fix the probe error path
mtd: rawnand: plat_nand: Stop using nand_release()
mtd: rawnand: qcom: Stop using nand_release()
mtd: rawnand: r852: Stop using nand_release()
mtd: rawnand: s3c2410: Stop using nand_release()
mtd: rawnand: sh_flctl: Stop using nand_release()
mtd: rawnand: sharpsl: Fix the probe error path
mtd: rawnand: sharpsl: Stop using nand_release()
mtd: rawnand: socrates: Fix the probe error path
mtd: rawnand: socrates: Stop using nand_release()
mtd: rawnand: stm32_fmc2: Stop using nand_release()
mtd: rawnand: sunxi: Fix the probe error path
mtd: rawnand: sunxi: Stop using nand_release()
mtd: rawnand: tango: Stop using nand_release()
mtd: rawnand: tmio: Fix the probe error path
mtd: rawnand: tmio: Stop using nand_release()
mtd: rawnand: txx9ndfmc: Stop using nand_release()
mtd: rawnand: vf610: Stop using nand_release()
mtd: rawnand: xway: Fix the probe error path
mtd: rawnand: xway: Stop using nand_release()
mtd: rawnand: gpmi: Use nand_extract_bits()
mtd: rawnand: nandsim: Consistent use of 'ns' instead of 'dev'
mtd: rawnand: nandsim: Use octal permissions
mtd: rawnand: nandsim: Use a consistent ns_ prefix for all functions
mtd: rawnand: nandsim: Clean error handling
mtd: rawnand: nandsim: Keep track of the created debugfs entries
mtd: rawnand: nandsim: Remove debugfs entries at unload time
mtd: rawnand: nandsim: Fix the two ns_alloc_device() error paths
mtd: rawnand: nandsim: Free partition names on error in ns_init()
mtd: rawnand: nandsim: Free the allocated device on error in ns_init()
mtd: rawnand: nandsim: Free the partition names in ns_free()
mtd: rawnand: nandsim: Stop using nand_release()
mtd: rawnand: nandsim: Use an additional label when freeing the nandsim object
mtd: rawnand: nandsim: Free erase_block_wear on error
mtd: rawnand: nandsim: Fix the label pointing on nand_cleanup()
mtd: rawnand: nandsim: Manage lists on error in ns_init_module()
mtd: rawnand: nandsim: Rename a label in ns_init_module()
mtd: rawnand: nandsim: Reorganize ns_cleanup_module()
mtd: rawnand: Stop using nand_release()
mtd: Fix typo in mtd_ooblayout_set_databytes() description
mtd: rawnand: Avoid a typedef
mtd: rawnand: Drop OOB_FIRST placement scheme
mtd: rawnand: Return an enum from of_get_nand_ecc_algo()
mtd: rawnand: Add an invalid ECC mode to discriminate with valid ones

YueHaibing (3):
mtd: rawnand: ingenic: Make qi_lb60_ooblayout_ops static
mtd: rawnand: cadence: Make cadence_nand_attach_chip static
mtd: rawnand: brcmnand: Remove unused including <linux/version.h>

Álvaro Fernández Rojas (8):
mtd: rawnand: brcmnand: fix hamming oob layout
mtd: rawnand: brcmnand: improve hamming oob layout
mtd: rawnand: brcmnand: correctly verify erased pages
mtd: rawnand: brcmnand: rename v4 registers
mtd: rawnand: brcmnand: fix CS0 layout
mtd: rawnand: brcmnand: rename page sizes
dt-bindings: mtd: brcmnand: add v2.1 and v2.2 support
mtd: rawnand: brcmnand: support v2.1-v2.2 controllers

 Documentation/devicetree/bindings/mtd/arasan,nand-controller.yaml |   63 ++++++++
 Documentation/devicetree/bindings/mtd/brcm,brcmnand.txt           |    2 +
 Documentation/devicetree/bindings/mtd/partition.txt               |    3 +
 Documentation/driver-api/mtdnand.rst                              |    6 +-
 MAINTAINERS                                                       |   13 +-
 drivers/mtd/devices/docg3.c                                       |   10 +-
 drivers/mtd/mtdcore.c                                             |  191 +++++++++++++++++++++--
 drivers/mtd/mtdpart.c                                             |   54 ++++---
 drivers/mtd/nand/raw/Kconfig                                      |   12 +-
 drivers/mtd/nand/raw/Makefile                                     |    2 +-
 drivers/mtd/nand/raw/ams-delta.c                                  |    5 +-
 drivers/mtd/nand/raw/arasan-nand-controller.c                     | 1297 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/mtd/nand/raw/atmel/nand-controller.c                      |    2 +-
 drivers/mtd/nand/raw/au1550nd.c                                   |  417 +++++++++++++++++--------------------------------
 drivers/mtd/nand/raw/bcm47xxnflash/main.c                         |    6 +-
 drivers/mtd/nand/raw/brcmnand/brcmnand.c                          |  164 +++++++++++++------
 drivers/mtd/nand/raw/cadence-nand-controller.c                    |   17 +-
 drivers/mtd/nand/raw/cafe_nand.c                                  |   16 +-
 drivers/mtd/nand/raw/cmx270_nand.c                                |  236 ----------------------------
 drivers/mtd/nand/raw/cs553x_nand.c                                |  199 ++++++++++++++++--------
 drivers/mtd/nand/raw/davinci_nand.c                               |  324 +++++++++++++++++++++++---------------
 drivers/mtd/nand/raw/denali.c                                     |   60 +++++--
 drivers/mtd/nand/raw/diskonchip.c                                 |  497 ++++++++++++++++++++++------------------------------------
 drivers/mtd/nand/raw/fsl_elbc_nand.c                              |    7 +-
 drivers/mtd/nand/raw/fsl_ifc_nand.c                               |    7 +-
 drivers/mtd/nand/raw/fsl_upm.c                                    |    9 +-
 drivers/mtd/nand/raw/fsmc_nand.c                                  |   19 ++-
 drivers/mtd/nand/raw/gpio.c                                       |    6 +-
 drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c                        |  189 +++-------------------
 drivers/mtd/nand/raw/hisi504_nand.c                               |    6 +-
 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c                   |  170 ++++++++++++--------
 drivers/mtd/nand/raw/internals.h                                  |   12 ++
 drivers/mtd/nand/raw/lpc32xx_mlc.c                                |    7 +-
 drivers/mtd/nand/raw/lpc32xx_slc.c                                |    6 +-
 drivers/mtd/nand/raw/marvell_nand.c                               |   68 ++++----
 drivers/mtd/nand/raw/meson_nand.c                                 |    5 +-
 drivers/mtd/nand/raw/mpc5121_nfc.c                                |    5 +-
 drivers/mtd/nand/raw/mtk_nand.c                                   |   19 ++-
 drivers/mtd/nand/raw/mxc_nand.c                                   |    6 +-
 drivers/mtd/nand/raw/mxic_nand.c                                  |   10 +-
 drivers/mtd/nand/raw/nand_base.c                                  |  445 ++++++++++++++++++++++++++++++++--------------------
 drivers/mtd/nand/raw/nand_bch.c                                   |   10 +-
 drivers/mtd/nand/raw/nand_jedec.c                                 |   30 ++--
 drivers/mtd/nand/raw/nand_legacy.c                                |    8 +-
 drivers/mtd/nand/raw/nand_micron.c                                |   65 ++++++--
 drivers/mtd/nand/raw/nand_onfi.c                                  |   69 ++++----
 drivers/mtd/nand/raw/nand_timings.c                               |   11 +-
 drivers/mtd/nand/raw/nand_toshiba.c                               |   14 ++
 drivers/mtd/nand/raw/nandsim.c                                    |  440 +++++++++++++++++++++++++++++----------------------
 drivers/mtd/nand/raw/ndfc.c                                       |    8 +-
 drivers/mtd/nand/raw/omap2.c                                      |    8 +-
 drivers/mtd/nand/raw/omap_elm.c                                   |    1 +
 drivers/mtd/nand/raw/orion_nand.c                                 |    8 +-
 drivers/mtd/nand/raw/oxnas_nand.c                                 |   33 ++--
 drivers/mtd/nand/raw/pasemi_nand.c                                |    9 +-
 drivers/mtd/nand/raw/plat_nand.c                                  |    8 +-
 drivers/mtd/nand/raw/qcom_nandc.c                                 |   13 +-
 drivers/mtd/nand/raw/r852.c                                       |    6 +-
 drivers/mtd/nand/raw/s3c2410.c                                    |    3 +-
 drivers/mtd/nand/raw/sh_flctl.c                                   |    6 +-
 drivers/mtd/nand/raw/sharpsl.c                                    |   14 +-
 drivers/mtd/nand/raw/socrates_nand.c                              |    8 +-
 drivers/mtd/nand/raw/stm32_fmc2_nand.c                            | 1065 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------
 drivers/mtd/nand/raw/sunxi_nand.c                                 |   16 +-
 drivers/mtd/nand/raw/tango_nand.c                                 |   13 +-
 drivers/mtd/nand/raw/tegra_nand.c                                 |    6 +-
 drivers/mtd/nand/raw/tmio_nand.c                                  |    8 +-
 drivers/mtd/nand/raw/txx9ndfmc.c                                  |    6 +-
 drivers/mtd/nand/raw/vf610_nfc.c                                  |   10 +-
 drivers/mtd/nand/raw/xway_nand.c                                  |    8 +-
 drivers/mtd/parsers/cmdlinepart.c                                 |   12 +-
 drivers/mtd/parsers/ofpart.c                                      |    3 +
 drivers/mtd/ubi/build.c                                           |    5 +-
 include/linux/bch.h                                               |   11 +-
 include/linux/mtd/bbm.h                                           |    2 +-
 include/linux/mtd/mtd.h                                           |    7 +-
 include/linux/mtd/partitions.h                                    |    2 +
 include/linux/mtd/rawnand.h                                       |  133 +++++++++-------
Quoted 8 lines
 include/linux/platform_data/mtd-davinci.h                         |    2 +-
 include/linux/platform_data/mtd-nand-s3c2410.h                    |    2 +-
 include/uapi/mtd/mtd-abi.h                                        |    1 +
 lib/bch.c                                                         |  152 ++++++++++++------
 82 files changed, 4275 insertions(+), 2553 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/mtd/arasan,nand-controller.yaml
 create mode 100644 drivers/mtd/nand/raw/arasan-nand-controller.c
 delete mode 100644 drivers/mtd/nand/raw/cmx270_nand.c

Pulled, thanks!

Signature · 6 lines
Thanks,
//richard

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/