[GIT PULL] mtd: nand: Changes for 5.2

Miquel Raynal miquel.raynal at bootlin.com
Thu Apr 18 10:14:55 PDT 2019


Hello,

This is the NAND PR for 5.2.

Thanks,
Miquèl


The following changes since commit 9e98c678c2d6ae3a17cb2de55d17f69dddaa231b:

  Linux 5.1-rc1 (2019-03-17 14:22:26 -0700)

are available in the Git repository at:

  ssh://git@gitolite.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git tags/nand/for-5.2

for you to fetch changes up to 1c14fe2167ef4294b41949bcc372ea39c0510c00:

  mtd: nandsim: switch to exec_op interface (2019-04-18 08:54:08 +0200)

----------------------------------------------------------------
NAND core changes:
- Support having the bad block markers in either the first, second or
  last page of a block. The combination of all three location is now
  possible.
- Constification of NAND_OP_PARSER(_PATTERN) elements.
- Generic NAND DT bindings changed to yaml format (can be used to
  check the proposed bindings. First platform to be fully supported:
  sunxi.
- Stopped using several legacy hooks.
- Preparation to use the generic NAND layer with the addition of
  several helpers and the removal of the struct nand_chip from generic
  functions.
- Kconfig cleanup to prepare the introduction of external ECC engines
  support.
- Fallthrough comments.
- Introduction of the SPI-mem dirmap API for SPI-NAND devices.

Raw NAND controller drivers changes:
- nandsim:
  * Switch to ->exec-op().
- meson:
  * Misc cleanups and fixes.
  * New OOB layout.
- Sunxi:
  * A23/A33 NAND DMA support.
- Ingenic:
  * Full reorganization and cleanup.
  * Clear separation between NAND controller and ECC engine.
  * Support JZ4740 an JZ4725B.
- Denali:
  * Clear controller/chip separation.
  * ->exec_op() migration.
  * Various cleanups.
- fsl_elbc:
  * Enable software ECC support.
- Atmel:
  * Sam9x60 support.
- GPMI:
  * Introduce the GPMI_IS_MXS() macro.
- Various trivial/spelling/coding style fixes.

----------------------------------------------------------------
Aditya Pakki (1):
      mtd: rawnand: vf610: Avoid a potential NULL pointer dereference

Anders Roxell (1):
      mtd: rawnand: fix build dependency

Boris Brezillon (16):
      mtd: spinand: Use the spi-mem dirmap API
      mtd: nand: Add max_bad_eraseblocks_per_lun info to memorg
      mtd: nand: Add a helper returning the number of eraseblocks per target
      mtd: nand: Add a helper to retrieve the number of pages per target
      mtd: spinand: Implement mtd->_max_bad_blocks
      mtd: rawnand: Use nand_to_mtd() in nand_{set,get}_flash_node()
      mtd: rawnand: Prepare things to reuse the generic NAND layer
      mtd: rawnand: Fill memorg during detection
      mtd: rawnand: Initialize the nand_device object
      mtd: rawnand: Provide a helper to get chip->data_buf
      mtd: rawnand: Move all page cache related fields to a sub-struct
      mtd: rawnand: Use nanddev_mtd_max_bad_blocks()
      mtd: rawnand: Get rid of chip->bits_per_cell
      mtd: rawnand: Get rid of chip->chipsize
      mtd: rawnand: Get rid of chip->numchips
      mtd: rawnand: Get rid of chip->ecc_{strength,step}_ds

Fabio Estevam (1):
      mtd: rawnand: gpmi: Introduce GPMI_IS_MXS() macro

Frieder Schrempf (7):
      mtd: rawnand: Always store info about bad block markers in chip struct
      mtd: onenand: Store bad block marker position in chip struct
      mtd: nand: Cleanup flags and fields for bad block marker position
      mtd: nand: Make flags for bad block marker position more granular
      mtd: rawnand: Support bad block markers in first, second or last page
      mtd: rawnand: ESMT: Also use the last page for bad block markers
      mtd: rawnand: AMD: Also use the last page for bad block markers

Gustavo A. R. Silva (1):
      mtd: rawnand: Mark expected switch fall-throughs

Jonathan Neuschäfer (1):
      mtd: rawnand: Fix sphinx syntax

Liang Yang (1):
      mtd: rawnand: meson: set oob layout ops

Marek Behún (3):
      mtd: rawnand: fsl_elbc: Cosmetic move
      mtd: rawnand: fsl_elbc: Implement RNDOUT command
      mtd: rawnand: fsl_elbc: Make SW ECC work

Martin Blumenstingl (6):
      mtd: rawnand: meson: add missing ENOMEM check in meson_nfc_read_buf()
      mtd: rawnand: meson: fix a potential memory leak in meson_nfc_read_buf
      mtd: rawnand: meson: use struct_size macro
      mtd: rawnand: meson: use of_property_count_elems_of_size helper
      mtd: rawnand: meson: use a void pointer for meson_nfc_dma_buffer_setup
      mtd: rawnand: meson: only initialize the RB completion once

Masahiro Yamada (10):
      mtd: rawnand: denali: use more nand_chip pointers for internal functions
      mtd: rawnand: denali: refactor raw page accessors
      mtd: rawnand: denali: remove unneeded casts in denali_{read, write}_pio
      mtd: rawnand: denali: switch over to ->exec_op() from legacy hooks
      mtd: rawnand: denali: use bool type instead of int where appropriate
      mtd: rawnand: denali_pci: rename goto labels
      mtd: rawnand: denali: decouple controller and NAND chips
      mtd: rawnand: denali: remove DENALI_NR_BANKS macro
      mtd: rawnand: denali: clean up coding style
      mtd: rawnand: constify elements of NAND_OP_PARSER(_PATTERN)

Maxime Ripard (2):
      dt-bindings: mtd: Add YAML schemas for the generic NAND options
      dt-bindings: mtd: sunxi-nand: Add YAML schemas

Miquel Raynal (11):
      mtd: nand: omap: Fix comment in platform data using wrong Kconfig symbol
      mtd: nand: Clarify Kconfig entry for software BCH ECC algorithm
      mtd: nand: Clarify Kconfig entry for software Hamming ECC entries
      mtd: rawnand: Change Kconfig titles and re-order a bit the list
      mtd: rawnand: Clarify Kconfig entry MTD_NAND
      mtd: nand: Remove useless line in Kconfig
      mtd: rawnand: atmel: Fix spelling mistake in error message
      dt-bindings: mtd: sunxi: Add new compatible
      mtd: rawnand: sunxi: Add a platform data structure
      mtd: rawnand: sunxi: Add A23/A33 DMA support
      mtd: rawnand: marvell: Fix helper name in comment

Paul Cercueil (13):
      dt-bindings: mtd: ingenic: Add compatible strings for JZ4740 and JZ4725B
      dt-bindings: mtd: ingenic: Change 'BCH' to 'ECC' in documentation
      dt-bindings: mtd: ingenic: Use standard ecc-engine property
      mtd: rawnand: Move drivers for Ingenic SoCs to subfolder
      mtd: rawnand: ingenic: Use SPDX license notifiers
      mtd: rawnand: ingenic: Rename jz4780_nand driver to ingenic_nand
      mtd: rawnand: ingenic: Rename jz4780_bch_init to jz4780_bch_reset
      mtd: rawnand: ingenic: Separate top-level and SoC specific code
      mtd: rawnand: ingenic: Make use of ecc-engine property
      mtd: rawnand: ingenic: Add support for the JZ4740
      mtd: rawnand: ingenic: Add support for the JZ4725B
      mtd: rawnand: ingenic: Add ooblayout for the Qi Ben Nanonote
      mtd: rawnand: ingenic: Move BBTs out of ECC area

Richard Weinberger (2):
      mtd: nandsim: Embed struct nand_chip in struct nandsim
      mtd: nandsim: switch to exec_op interface

Tudor Ambarus (8):
      ARM: at91: add sam9x60 SFR definitions
      memory: atmel-ebi: add generic name for ebi regmap
      dt-bindings: memory: atmel-ebi: add sam9x60 compatible
      memory: atmel-ebi: add sam9x60 EBI support
      mtd: rawnand: atmel: add generic name for EBICSA regmap
      dt-bindings: mtd: atmel-nand: add sam9x60 compatible
      mtd: rawnand: atmel: add sam9x60 nand controller support
      mtd: rawnand: atmel: switch to SPDX license identifiers

YueHaibing (2):
      mtd: rawnand: ingenic: Add missing MODULE_* information
      mtd: rawnand: ingenic: Make jz4725b_ooblayout_ops static

 Documentation/devicetree/bindings/memory-controllers/atmel,ebi.txt  |    1 +
 Documentation/devicetree/bindings/mtd/allwinner,sun4i-a10-nand.yaml |   97 ++++++++
 Documentation/devicetree/bindings/mtd/atmel-nand.txt                |    1 +
 Documentation/devicetree/bindings/mtd/denali-nand.txt               |   38 +++-
 Documentation/devicetree/bindings/mtd/ingenic,jz4780-nand.txt       |   30 ++-
 Documentation/devicetree/bindings/mtd/nand-controller.yaml          |  143 ++++++++++++
 Documentation/devicetree/bindings/mtd/nand.txt                      |   75 -------
 Documentation/devicetree/bindings/mtd/sunxi-nand.txt                |   48 ----
 arch/arm/configs/at91_dt_defconfig                                  |    2 +-
 arch/arm/configs/clps711x_defconfig                                 |    2 +-
 arch/arm/configs/cm_x2xx_defconfig                                  |    2 +-
 arch/arm/configs/cm_x300_defconfig                                  |    2 +-
 arch/arm/configs/colibri_pxa270_defconfig                           |    2 +-
 arch/arm/configs/corgi_defconfig                                    |    2 +-
 arch/arm/configs/davinci_all_defconfig                              |    2 +-
 arch/arm/configs/em_x270_defconfig                                  |    2 +-
 arch/arm/configs/ep93xx_defconfig                                   |    2 +-
 arch/arm/configs/eseries_pxa_defconfig                              |    2 +-
 arch/arm/configs/imx_v4_v5_defconfig                                |    2 +-
 arch/arm/configs/imx_v6_v7_defconfig                                |    2 +-
 arch/arm/configs/ixp4xx_defconfig                                   |    2 +-
 arch/arm/configs/keystone_defconfig                                 |    2 +-
 arch/arm/configs/lpc32xx_defconfig                                  |    2 +-
 arch/arm/configs/mini2440_defconfig                                 |    2 +-
 arch/arm/configs/mmp2_defconfig                                     |    2 +-
 arch/arm/configs/multi_v4t_defconfig                                |    2 +-
 arch/arm/configs/multi_v5_defconfig                                 |    2 +-
 arch/arm/configs/multi_v7_defconfig                                 |    2 +-
 arch/arm/configs/mv78xx0_defconfig                                  |    2 +-
 arch/arm/configs/mvebu_v5_defconfig                                 |    2 +-
 arch/arm/configs/mvebu_v7_defconfig                                 |    2 +-
 arch/arm/configs/mxs_defconfig                                      |    2 +-
 arch/arm/configs/nhk8815_defconfig                                  |    4 +-
 arch/arm/configs/omap1_defconfig                                    |    2 +-
 arch/arm/configs/omap2plus_defconfig                                |    4 +-
 arch/arm/configs/orion5x_defconfig                                  |    2 +-
 arch/arm/configs/oxnas_v6_defconfig                                 |    2 +-
 arch/arm/configs/pxa3xx_defconfig                                   |    2 +-
 arch/arm/configs/pxa_defconfig                                      |    4 +-
 arch/arm/configs/qcom_defconfig                                     |    2 +-
 arch/arm/configs/s3c2410_defconfig                                  |    2 +-
 arch/arm/configs/s3c6400_defconfig                                  |    2 +-
 arch/arm/configs/sama5_defconfig                                    |    2 +-
 arch/arm/configs/socfpga_defconfig                                  |    2 +-
 arch/arm/configs/spear13xx_defconfig                                |    2 +-
 arch/arm/configs/spear3xx_defconfig                                 |    2 +-
 arch/arm/configs/spear6xx_defconfig                                 |    2 +-
 arch/arm/configs/spitz_defconfig                                    |    2 +-
 arch/arm/configs/tango4_defconfig                                   |    2 +-
 arch/arm/configs/trizeps4_defconfig                                 |    2 +-
 arch/arm/configs/u300_defconfig                                     |    2 +-
 arch/arm64/configs/defconfig                                        |    2 +-
 arch/mips/configs/bcm47xx_defconfig                                 |    2 +-
 arch/mips/configs/ci20_defconfig                                    |    2 +-
 arch/mips/configs/db1xxx_defconfig                                  |    4 +-
 arch/mips/configs/generic/board-ni169445.config                     |    6 +-
 arch/mips/configs/generic/board-ocelot.config                       |    2 +-
 arch/mips/configs/loongson1b_defconfig                              |    2 +-
 arch/mips/configs/loongson1c_defconfig                              |    2 +-
 arch/mips/configs/qi_lb60_defconfig                                 |    2 +-
 arch/mips/configs/rb532_defconfig                                   |    2 +-
 arch/mips/configs/rbtx49xx_defconfig                                |    2 +-
 arch/mips/configs/xway_defconfig                                    |    2 +-
 arch/powerpc/configs/40x/kilauea_defconfig                          |    2 +-
 arch/powerpc/configs/40x/obs600_defconfig                           |    2 +-
 arch/powerpc/configs/44x/canyonlands_defconfig                      |    2 +-
 arch/powerpc/configs/44x/eiger_defconfig                            |    2 +-
 arch/powerpc/configs/44x/sequoia_defconfig                          |    2 +-
 arch/powerpc/configs/44x/warp_defconfig                             |    2 +-
 arch/powerpc/configs/83xx/mpc8313_rdb_defconfig                     |    2 +-
 arch/powerpc/configs/83xx/mpc8315_rdb_defconfig                     |    2 +-
 arch/powerpc/configs/85xx-hw.config                                 |    2 +-
 arch/powerpc/configs/85xx/ge_imp3a_defconfig                        |    2 +-
 arch/powerpc/configs/85xx/socrates_defconfig                        |    2 +-
 arch/powerpc/configs/85xx/tqm8548_defconfig                         |    4 +-
 arch/powerpc/configs/85xx/xes_mpc85xx_defconfig                     |    2 +-
 arch/powerpc/configs/86xx-hw.config                                 |    2 +-
 arch/powerpc/configs/mpc512x_defconfig                              |    2 +-
 arch/powerpc/configs/mpc83xx_defconfig                              |    2 +-
 arch/powerpc/configs/pasemi_defconfig                               |    2 +-
 arch/powerpc/configs/ppc44x_defconfig                               |    2 +-
 arch/sh/configs/ap325rxa_defconfig                                  |    2 +-
 arch/sh/configs/ecovec24_defconfig                                  |    2 +-
 arch/sh/configs/migor_defconfig                                     |    2 +-
 arch/sh/configs/sdk7786_defconfig                                   |    2 +-
 arch/sh/configs/se7724_defconfig                                    |    2 +-
 arch/sh/configs/titan_defconfig                                     |    2 +-
 drivers/memory/atmel-ebi.c                                          |   37 ++-
 drivers/mtd/Kconfig                                                 |    3 +-
 drivers/mtd/devices/Kconfig                                         |    2 +-
 drivers/mtd/nand/Kconfig                                            |    1 -
 drivers/mtd/nand/core.c                                             |   34 +++
 drivers/mtd/nand/onenand/onenand_base.c                             |    5 +-
 drivers/mtd/nand/onenand/onenand_bbt.c                              |    3 -
 drivers/mtd/nand/raw/Kconfig                                        |  395 ++++++++++++++++----------------
 drivers/mtd/nand/raw/Makefile                                       |    9 +-
 drivers/mtd/nand/raw/atmel/nand-controller.c                        |  127 ++++++++---
 drivers/mtd/nand/raw/atmel/pmecc.c                                  |    5 +-
 drivers/mtd/nand/raw/atmel/pmecc.h                                  |    6 +-
 drivers/mtd/nand/raw/bcm47xxnflash/ops_bcm4706.c                    |    2 +-
 drivers/mtd/nand/raw/brcmnand/brcmnand.c                            |    7 +-
 drivers/mtd/nand/raw/denali.c                                       | 1216 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------
 drivers/mtd/nand/raw/denali.h                                       |  117 ++++++++--
 drivers/mtd/nand/raw/denali_dt.c                                    |   98 +++++++-
 drivers/mtd/nand/raw/denali_pci.c                                   |   38 +++-
 drivers/mtd/nand/raw/diskonchip.c                                   |    7 +-
 drivers/mtd/nand/raw/fsl_elbc_nand.c                                |  243 +++++++++++---------
 drivers/mtd/nand/raw/fsl_ifc_nand.c                                 |    4 +-
 drivers/mtd/nand/raw/gpmi-nand/gpmi-lib.c                           |    6 +-
 drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c                          |   19 +-
 drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.h                          |    1 +
 drivers/mtd/nand/raw/hisi504_nand.c                                 |    2 +-
 drivers/mtd/nand/raw/ingenic/Kconfig                                |   50 +++++
 drivers/mtd/nand/raw/ingenic/Makefile                               |    7 +
 drivers/mtd/nand/raw/ingenic/ingenic_ecc.c                          |  166 ++++++++++++++
 drivers/mtd/nand/raw/ingenic/ingenic_ecc.h                          |   83 +++++++
 drivers/mtd/nand/raw/ingenic/ingenic_nand.c                         |  530 +++++++++++++++++++++++++++++++++++++++++++
 drivers/mtd/nand/raw/ingenic/jz4725b_bch.c                          |  295 ++++++++++++++++++++++++
 drivers/mtd/nand/raw/ingenic/jz4740_ecc.c                           |  197 ++++++++++++++++
 drivers/mtd/nand/raw/{ => ingenic}/jz4740_nand.c                    |    7 +-
 drivers/mtd/nand/raw/{ => ingenic}/jz4780_bch.c                     |  180 +++------------
 drivers/mtd/nand/raw/internals.h                                    |    3 +-
 drivers/mtd/nand/raw/jz4780_bch.h                                   |   43 ----
 drivers/mtd/nand/raw/jz4780_nand.c                                  |  415 ----------------------------------
 drivers/mtd/nand/raw/marvell_nand.c                                 |   51 ++---
 drivers/mtd/nand/raw/meson_nand.c                                   |   30 +--
 drivers/mtd/nand/raw/mtk_nand.c                                     |    4 +-
 drivers/mtd/nand/raw/nand_amd.c                                     |   19 +-
 drivers/mtd/nand/raw/nand_base.c                                    |  322 ++++++++++++++++----------
 drivers/mtd/nand/raw/nand_bbt.c                                     |   73 +++---
 drivers/mtd/nand/raw/nand_esmt.c                                    |   19 +-
 drivers/mtd/nand/raw/nand_hynix.c                                   |   94 ++++----
 drivers/mtd/nand/raw/nand_jedec.c                                   |   27 ++-
 drivers/mtd/nand/raw/nand_macronix.c                                |    2 +-
 drivers/mtd/nand/raw/nand_micron.c                                  |   16 +-
 drivers/mtd/nand/raw/nand_onfi.c                                    |   35 +--
 drivers/mtd/nand/raw/nand_samsung.c                                 |   46 ++--
 drivers/mtd/nand/raw/nand_toshiba.c                                 |   21 +-
 drivers/mtd/nand/raw/nandsim.c                                      |  144 +++++++-----
 drivers/mtd/nand/raw/nuc900_nand.c                                  |    3 +-
 drivers/mtd/nand/raw/omap2.c                                        |    4 +-
 drivers/mtd/nand/raw/omap_elm.c                                     |    4 +
 drivers/mtd/nand/raw/qcom_nandc.c                                   |    8 +-
 drivers/mtd/nand/raw/sh_flctl.c                                     |   13 +-
 drivers/mtd/nand/raw/sunxi_nand.c                                   |   90 ++++++--
 drivers/mtd/nand/raw/tegra_nand.c                                   |    8 +-
 drivers/mtd/nand/raw/vf610_nfc.c                                    |    3 +
 drivers/mtd/nand/spi/core.c                                         |  169 +++++++-------
 drivers/mtd/nand/spi/gigadevice.c                                   |    8 +-
 drivers/mtd/nand/spi/macronix.c                                     |    4 +-
 drivers/mtd/nand/spi/micron.c                                       |    2 +-
 drivers/mtd/nand/spi/toshiba.c                                      |   12 +-
 drivers/mtd/nand/spi/winbond.c                                      |    4 +-
 drivers/mtd/sm_ftl.c                                                |   12 +-
 drivers/mtd/tests/mtd_nandecctest.c                                 |   16 +-
 include/linux/mtd/bbm.h                                             |   14 +-
 include/linux/mtd/nand.h                                            |   32 ++-
 include/linux/mtd/nand_bch.h                                        |    6 +-
 include/linux/mtd/onenand.h                                         |    3 +
 include/linux/mtd/rawnand.h                                         |  122 ++++++----
 include/linux/mtd/spinand.h                                         |    7 +
 include/linux/platform_data/elm.h                                   |    2 +-
 include/soc/at91/atmel-sfr.h                                        |   34 ++-
 163 files changed, 3992 insertions(+), 2459 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/mtd/allwinner,sun4i-a10-nand.yaml
 create mode 100644 Documentation/devicetree/bindings/mtd/nand-controller.yaml
 delete mode 100644 Documentation/devicetree/bindings/mtd/nand.txt
 delete mode 100644 Documentation/devicetree/bindings/mtd/sunxi-nand.txt
 create mode 100644 drivers/mtd/nand/raw/ingenic/Kconfig
 create mode 100644 drivers/mtd/nand/raw/ingenic/Makefile
 create mode 100644 drivers/mtd/nand/raw/ingenic/ingenic_ecc.c
 create mode 100644 drivers/mtd/nand/raw/ingenic/ingenic_ecc.h
 create mode 100644 drivers/mtd/nand/raw/ingenic/ingenic_nand.c
 create mode 100644 drivers/mtd/nand/raw/ingenic/jz4725b_bch.c
 create mode 100644 drivers/mtd/nand/raw/ingenic/jz4740_ecc.c
 rename drivers/mtd/nand/raw/{ => ingenic}/jz4740_nand.c (98%)
 rename drivers/mtd/nand/raw/{ => ingenic}/jz4780_bch.c (57%)
 delete mode 100644 drivers/mtd/nand/raw/jz4780_bch.h
 delete mode 100644 drivers/mtd/nand/raw/jz4780_nand.c



More information about the linux-mtd mailing list