[GIT PULL] MTD updates for v4.7

From: Brian Norris
Date: Tue May 24 2016 - 00:41:53 EST


Hi Linus,

The following changes since commit f55532a0c0b8bb6148f4e07853b876ef73bc69ca:

Linux 4.6-rc1 (2016-03-26 16:03:24 -0700)

are available in the git repository at:

git://git.infradead.org/linux-mtd.git tags/for-linus-20160523

for you to fetch changes up to e5366a266a8cd4cd6b0fe66876462cca2e1c6a89:

mtd: spi-nor: support GigaDevice gd25lq64c (2016-05-10 15:44:18 -0700)

----------------------------------------------------------------
MTD updates for v4.7:

First cycle with Boris as NAND maintainer! Many (most) bullets stolen from him.

Generic:

* Migrated NAND LED trigger to be a generic MTD trigger

NAND:

* Introduction of the "ECC algorithm" concept, to avoid overloading the ECC
mode field too much more
* Replaced the nand_ecclayout infrastructure with something a little more
flexible (finally!) and future proof
* Rework of the OMAP GPMC and NAND drivers; the TI folks pulled some of
this into their own tree as well
* Prepare the sunxi NAND driver to receive DMA support
* Handle bitflips in erased pages on GPMI revisions that do not support
this in hardware.

SPI NOR:

* Start using the spi_flash_read() API for SPI drivers that support it (i.e.,
SPI drivers with special memory-mapped flash modes)

And other small scattered improvments.

----------------------------------------------------------------
Arnd Bergmann (1):
mtd: avoid stack overflow in MTD CFI code

Boris Brezillon (85):
Merge branch 'for-v4.7/gpmc-mtd-common' of github.com:rogerq/linux into nand/next
Merge branch 'mtd-nand-trigger' of git://git.kernel.org/.../j.anaszewski/linux-leds into nand/next
mtd: nand: atmel: correct bitflips in erased pages for pre-sama5d4 SoCs
mtd: nand: document the NAND controller/NAND chip DT representation
mtd: nand: remove unneeded of_mtd.h inclusions
mtd: nand: omap2: rely on generic DT parsing done in nand_scan_ident()
mtd: nand: brcm: rely on generic DT parsing done in nand_scan_ident()
mtd: nand: atmel: rely on generic DT parsing done in nand_scan_ident()
mtd: nand: pxa3xx: rely on generic DT parsing done in nand_scan_ident()
mtd: nand: sunxi: fix call order in sunxi_nand_chip_init()
mtd: nand: sunxi: fix clk rate calculation
mtd: nand: sunxi: fix EDO mode selection
mtd: nand: sunxi: adapt clk_rate to tWB, tADL, tWHR and tRHW timings
mtd: nand: export default read/write oob functions
mtd: nand: sunxi: implement ->read_oob()/->write_oob()
mtd: nand: sunxi: implement ->read_subpage()
mtd: nand: sunxi: improve ->cmd_ctrl() function
mtd: nand: sunxi: let the NAND controller control the CE line
mtd: nand: sunxi: fix the NFC_ECC_ERR_CNT() macro
mtd: nand: sunxi: fix NFC_CTL setting
mtd: nand: sunxi: disable clks on device removal
mtd: nand: enable ECC pipelining
mtd: nand: sunxi: fix ->dev_ready() implementation
mtd: nand: sunxi: make use of readl_poll_timeout()
mtd: nand: sunxi: poll for events instead of using interrupts
mtd: nand: sunxi: move some ECC related operations to their own functions
mtd: nand: sunxi: make OOB retrieval optional
mtd: nand: sunxi: make cur_off parameter optional in extra oob helpers
mtd: add mtd_ooblayout_xxx() helper functions
mtd: use mtd_ooblayout_xxx() helpers where appropriate
mtd: nand: core: use mtd_ooblayout_xxx() helpers where appropriate
mtd: nand: atmel: use mtd_ooblayout_xxx() helpers where appropriate
mtd: nand: fsl_ifc: use mtd_ooblayout_xxx() helpers where appropriate
mtd: nand: gpmi: use mtd_ooblayout_xxx() helpers where appropriate
mtd: nand: lpc32xx: use mtd_ooblayout_xxx() helpers where appropriate
mtd: nand: omap2: use mtd_ooblayout_xxx() helpers where appropriate
mtd: nand: qcom: use mtd_ooblayout_xxx() helpers where appropriate
mtd: onenand: use mtd_ooblayout_xxx() helpers where appropriate
mtd: add mtd_set_ecclayout() helper function
mtd: use mtd_set_ecclayout() where appropriate
mtd: nand: use mtd_set_ecclayout() where appropriate
mtd: onenand: use mtd_set_ecclayout() where appropriate
mtd: docg3: use mtd_set_ecclayout() where appropriate
mtd: create an mtd_ooblayout_ops struct to ease ECC layout definition
mtd: docg3: switch to mtd_ooblayout_ops
mtd: nand: implement the default mtd_ooblayout_ops
mtd: nand: bch: switch to mtd_ooblayout_ops
mtd: nand: sharpsl: switch to mtd_ooblayout_ops
mtd: nand: jz4740: switch to mtd_ooblayout_ops
mtd: nand: atmel: switch to mtd_ooblayout_ops
mtd: nand: bf5xx: switch to mtd_ooblayout_ops
mtd: nand: brcm: switch to mtd_ooblayout_ops
mtd: nand: cafe: switch to mtd_ooblayout_ops
mtd: nand: davinci: switch to mtd_ooblayout_ops
mtd: nand: denali: switch to mtd_ooblayout_ops
mtd: nand: diskonchip: switch to mtd_ooblayout_ops
mtd: nand: docg4: switch to mtd_ooblayout_ops
mtd: nand: fsl_elbc: switch to mtd_ooblayout_ops
mtd: nand: fsl_ifc: switch to mtd_ooblayout_ops
mtd: nand: fsmc: switch to mtd_ooblayout_ops
mtd: nand: fsmc: get rid of the fsmc_nand_eccplace struct
mtd: nand: gpmi: switch to mtd_ooblayout_ops
mtd: nand: hisi504: switch to mtd_ooblayout_ops
mtd: nand: jz4780: switch to mtd_ooblayout_ops
mtd: nand: lpc32xx: switch to mtd_ooblayout_ops
mtd: nand: mxc: switch to mtd_ooblayout_ops
mtd: nand: omap2: switch to mtd_ooblayout_ops
mtd: nand: pxa3xx: switch to mtd_ooblayout_ops
mtd: nand: s3c2410: switch to mtd_ooblayout_ops
mtd: nand: sh_flctl: switch to mtd_ooblayout_ops
mtd: nand: sm_common: switch to mtd_ooblayout_ops
mtd: nand: sunxi: switch to mtd_ooblayout_ops
mtd: nand: vf610: switch to mtd_ooblayout_ops
mtd: nand: qcom: switch to mtd_ooblayout_ops
mtd: onenand: switch to mtd_ooblayout_ops
staging: mt29f_spinand: switch to mtd_ooblayout_ops
mtd: nand: kill the ecc->layout field
mtd: kill the nand_ecclayout struct
mtd: nand: gpmi: rely on generic DT parsing done in nand_scan_ident()
mtd: nand: davinci: rely on generic DT parsing done in nand_scan_ident()
mtd: nand: hisi504: rely on generic DT parsing done in nand_scan_ident()
mtd: nand: lpc32xx: rely on generic DT parsing done in nand_scan_ident()
mtd: nand: mxc: rely on generic DT parsing done in nand_scan_ident()
mtd: nand: sh_flctl: rely on generic DT parsing done in nand_scan_ident()
mtd: nand: move of_get_nand_xxx() helpers into nand_base.c

Brian Norris (5):
mtd: bcm47xxsflash: use ioremap_cache() instead of KSEG0ADDR()
mtd: brcmnand: respect ECC algorithm set by NAND subsystem
Merge tag 'nand/for-4.7' of github.com:linux-nand/linux
mtd: nand_bch: fix spelling of "probably"
mtd: spi-nor: support GigaDevice gd25lq64c

Cooper Jr., Franklin (2):
mtd: nand: omap2: Start dma request before enabling prefetch
mtd: nand: omap2: Fix high memory dma prefetch transfer

Ezequiel Garcia (5):
leds: trigger: Introduce a kernel panic LED trigger
mtd: Uninline mtd_write_oob and move it to mtdcore.c
leds: trigger: Introduce a MTD (NAND/NOR) trigger
mtd: nand: Remove the "nand-disk" LED trigger
mtd: Hook I/O activity to the MTD LED trigger

Ezequiel GarcÃa (2):
mtd: nand: Drop mtd.owner requirement in nand_scan
mtd: nand: Remove BUG() abuse in nand_scan_tail

Florian Fainelli (1):
mtd: brcmnand: Add support for v6.2 controllers

Han Xu (1):
mtd: gpmi: fix raw_buffer pointer double free issue

Jorge Ramirez-Ortiz (1):
mtd: nand: jz4780: fixup, device structure assigned at probe

Julia Lawall (4):
mtd: maps: add __init attribute
mtd: pmc551: add __init attribute
mtd: nand: omap2: fix compare_const_fl.cocci warnings
mtd: nandsim: add __init attribute

Maarten ter Huurne (1):
mtd: nand: jz4740: Remove unused local variable

Markus Pargmann (1):
gpmi-nand: Handle ECC Errors in erased pages

Paul Gortmaker (1):
mtd: maps: make uclinux.c driver more explicitly non-modular

RafaÅ MiÅecki (34):
mtd: nand: add new enum for storing ECC algorithm
of: mtd: prepare helper reading NAND ECC algo from DT
mtd: nand: set ECC algorithm in nand_dt_init
mtd: nand: nandsim: set ECC algorithm explicitly
mtd: nand: ams-delta: set ECC algorithm explicitly
mtd: nand: gpio: set ECC algorithm explicitly
mtd: nand: mxc: set ECC algorithm explicitly
mtd: nand: nuc900: set ECC algorithm explicitly
mtd: nand: orion: set ECC algorithm explicitly
mtd: nand: pasemi: set ECC algorithm explicitly
mtd: nand: plat: set ECC algorithm explicitly
mtd: nand: socrates: set ECC algorithm explicitly
mtd: nand: pasemi: switch to dev_* printing functions
mtd: nand: omap2: set ECC algorithm explicitly
mtd: nand: s3c2410: set ECC algorithm explicitly
mtd: nand: sh_flctl: set ECC algorithm explicitly
mtd: nand: au1550nd: set ECC algorithm explicitly
mtd: nand: mpc5121_nfc: set ECC algorithm explicitly
mtd: nand: cmx270: set ECC algorithm explicitly
mtd: nand: fsl_upm: set ECC algorithm explicitly
mtd: nand: fsl_ifc: set ECC algorithm explicitly
mtd: nand: fsl_elbc: set ECC algorithm explicitly
mtd: nand: bf5xx: set ECC algorithm explicitly
mtd: nand: davinci: set ECC algorithm explicitly
mtd: nand: atmel: set ECC algorithm explicitly
CRIS v32: nand: set ECC algorithm explicitly
staging: mt29f_spinand: set ECC algorithm explicitly
mtd: nand: set ECC algorithm to Hamming on fallback
mtd: nand: fsmc: validate ECC setup by checking algorithm directly
mtd: nand: read ECC algorithm from the new field
mtd: drop support for NAND_ECC_SOFT_BCH as "soft_bch" mapping
mtd: mtd: drop NAND_ECC_SOFT_BCH enum value
mtd: nand: add support for "nand-ecc-algo" DT property
Documentation: devicetree: deprecate "soft_bch" nand-ecc-mode value

Raghav Dogra (1):
mtd/ifc: Add support for IFC controller version 2.0

Roger Quadros (17):
ARM: OMAP2+: gpmc: Add platform data
ARM: OMAP2+: gpmc: Add gpmc timings and settings to platform data
memory: omap-gpmc: Introduce GPMC to NAND interface
memory: omap-gpmc: Add GPMC-NAND ops to get writebufferempty status
memory: omap-gpmc: Implement IRQ domain for NAND IRQs
mtd: nand: omap: Use gpmc_omap_get_nand_ops() to get NAND registers
mtd: nand: omap: Switch to using GPMC-NAND ops for writebuffer empty check
mtd: nand: omap: Copy platform data parameters to omap_nand_info data
mtd: nand: omap: Clean up device tree support
mtd: nand: omap: Update DT binding documentation
memory: omap-gpmc: Prevent mapping into 1st 16MB
memory: omap-gpmc: Move device tree binding to correct location
memory: omap-gpmc: Support general purpose input for WAITPINs
memory: omap-gpmc: Reserve WAITPIN if needed for WAIT monitoring
memory: omap-gpmc: Support WAIT pin edge interrupts
memory: omap-gpmc: Prevent GPMC_STATUS from being accessed via gpmc_regs
mtd: nand: omap2: Implement NAND ready using gpiolib

Vignesh R (1):
mtd: devices: m25p80: add support for mmap read request

Zhaoxiu Zeng (1):
mtd: nand: s3c2410: fix bug in s3c2410_nand_correct_data()

.../omap-gpmc.txt} | 17 +
.../devicetree/bindings/mtd/brcm,brcmnand.txt | 1 +
.../devicetree/bindings/mtd/gpmc-nand.txt | 19 +-
Documentation/devicetree/bindings/mtd/nand.txt | 45 +-
arch/arm/mach-omap2/gpmc-nand.c | 7 +-
arch/arm/mach-pxa/spitz.c | 55 +-
arch/cris/arch-v32/drivers/mach-a3/nandflash.c | 1 +
arch/cris/arch-v32/drivers/mach-fs/nandflash.c | 1 +
arch/mips/include/asm/mach-jz4740/jz4740_nand.h | 2 +-
arch/mips/jz4740/board-qi_lb60.c | 87 +--
drivers/bcma/driver_chipcommon_sflash.c | 1 -
drivers/leds/trigger/Kconfig | 15 +
drivers/leds/trigger/Makefile | 2 +
drivers/leds/trigger/ledtrig-mtd.c | 45 ++
drivers/leds/trigger/ledtrig-panic.c | 30 +
drivers/memory/Kconfig | 1 +
drivers/memory/fsl_ifc.c | 36 +-
drivers/memory/omap-gpmc.c | 657 ++++++++++++--------
drivers/mtd/chips/Kconfig | 1 +
drivers/mtd/devices/bcm47xxsflash.c | 29 +-
drivers/mtd/devices/bcm47xxsflash.h | 3 +-
drivers/mtd/devices/docg3.c | 46 +-
drivers/mtd/devices/m25p80.c | 22 +
drivers/mtd/devices/pmc551.c | 2 +-
drivers/mtd/maps/ck804xrom.c | 4 +-
drivers/mtd/maps/esb2rom.c | 4 +-
drivers/mtd/maps/ichxrom.c | 4 +-
drivers/mtd/maps/uclinux.c | 27 +-
drivers/mtd/mtdchar.c | 123 +++-
drivers/mtd/mtdconcat.c | 2 +-
drivers/mtd/mtdcore.c | 379 ++++++++++++
drivers/mtd/mtdpart.c | 23 +-
drivers/mtd/nand/ams-delta.c | 1 +
drivers/mtd/nand/atmel_nand.c | 315 +++++-----
drivers/mtd/nand/au1550nd.c | 1 +
drivers/mtd/nand/bf5xx_nand.c | 52 +-
drivers/mtd/nand/brcmnand/brcmnand.c | 290 +++++----
drivers/mtd/nand/cafe_nand.c | 44 +-
drivers/mtd/nand/cmx270_nand.c | 1 +
drivers/mtd/nand/davinci_nand.c | 210 +++----
drivers/mtd/nand/denali.c | 50 +-
drivers/mtd/nand/diskonchip.c | 60 +-
drivers/mtd/nand/docg4.c | 33 +-
drivers/mtd/nand/fsl_elbc_nand.c | 84 +--
drivers/mtd/nand/fsl_ifc_nand.c | 317 ++++------
drivers/mtd/nand/fsl_upm.c | 1 +
drivers/mtd/nand/fsmc_nand.c | 332 +++-------
drivers/mtd/nand/gpio.c | 1 +
drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 161 ++++-
drivers/mtd/nand/hisi504_nand.c | 40 +-
drivers/mtd/nand/jz4740_nand.c | 3 +-
drivers/mtd/nand/jz4780_bch.c | 1 -
drivers/mtd/nand/jz4780_nand.c | 21 +-
drivers/mtd/nand/lpc32xx_mlc.c | 51 +-
drivers/mtd/nand/lpc32xx_slc.c | 83 ++-
drivers/mtd/nand/mpc5121_nfc.c | 1 +
drivers/mtd/nand/mxc_nand.c | 257 ++++----
drivers/mtd/nand/nand_base.c | 674 +++++++++++++--------
drivers/mtd/nand/nand_bch.c | 48 +-
drivers/mtd/nand/nandsim.c | 10 +-
drivers/mtd/nand/nuc900_nand.c | 1 +
drivers/mtd/nand/omap2.c | 448 +++++++++-----
drivers/mtd/nand/orion_nand.c | 1 +
drivers/mtd/nand/pasemi_nand.c | 16 +-
drivers/mtd/nand/plat_nand.c | 1 +
drivers/mtd/nand/pxa3xx_nand.c | 132 ++--
drivers/mtd/nand/qcom_nandc.c | 88 ++-
drivers/mtd/nand/s3c2410.c | 36 +-
drivers/mtd/nand/sh_flctl.c | 115 ++--
drivers/mtd/nand/sharpsl.c | 2 +-
drivers/mtd/nand/sm_common.c | 93 ++-
drivers/mtd/nand/socrates_nand.c | 1 +
drivers/mtd/nand/sunxi_nand.c | 600 +++++++++++-------
drivers/mtd/nand/vf610_nfc.c | 35 +-
drivers/mtd/onenand/onenand_base.c | 235 ++++---
drivers/mtd/spi-nor/spi-nor.c | 1 +
drivers/of/Makefile | 1 -
drivers/of/of_mtd.c | 119 ----
drivers/staging/mt29f_spinand/mt29f_spinand.c | 49 +-
include/linux/bcma/bcma_driver_chipcommon.h | 1 -
include/linux/fsl_ifc.h | 45 +-
include/linux/leds.h | 6 +
include/linux/mtd/fsmc.h | 18 -
include/linux/mtd/map.h | 19 +-
include/linux/mtd/mtd.h | 75 ++-
include/linux/mtd/nand.h | 28 +-
include/linux/mtd/onenand.h | 2 -
include/linux/mtd/sharpsl.h | 2 +-
include/linux/mtd/spi-nor.h | 1 +
include/linux/of_mtd.h | 50 --
include/linux/omap-gpmc.h | 172 +-----
include/linux/platform_data/gpmc-omap.h | 172 ++++++
include/linux/platform_data/mtd-nand-omap2.h | 12 +-
include/uapi/mtd/mtd-abi.h | 2 +-
94 files changed, 4457 insertions(+), 2955 deletions(-)
rename Documentation/devicetree/bindings/{bus/ti-gpmc.txt => memory-controllers/omap-gpmc.txt} (89%)
create mode 100644 drivers/leds/trigger/ledtrig-mtd.c
create mode 100644 drivers/leds/trigger/ledtrig-panic.c
delete mode 100644 drivers/of/of_mtd.c
delete mode 100644 include/linux/of_mtd.h
create mode 100644 include/linux/platform_data/gpmc-omap.h