[GIT PULL] MTD updates for v4.5

From: Brian Norris
Date: Tue Jan 12 2016 - 19:07:02 EST


Hi Linus,

The following changes since commit a32d5b726ff8cf32bf491522b0ac8ae2545a063e:

mtd: spi-nor: fix stm_is_locked_sr() parameters (2016-01-05 16:00:41 -0800)

are available in the git repository at:

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

for you to fetch changes up to 9146cbd52b11d4ade62dba8f238ec5e421c3fa2b:

mtd: jz4780_nand: replace if/else blocks with switch/case (2016-01-08 09:49:03 -0800)

----------------------------------------------------------------
MTD updates for v4.5:

Generic MTD

* populate the MTD device 'of_node' field (and get a proper 'of_node' symlink
in sysfs)
- This yielded some new helper functions, and changes across a variety of
drivers

* partitioning cleanups, to prepare for better device-tree based partitioning
in the future
- Eliminate a lot of boilerplate for drivers that want to use OF-based
partition parsing
- The DT bindings for this didn't settle yet, so most non-cleanup portions
are deferred for a future release

NAND

* embed a struct mtd_info inside struct nand_chip
- This is really long overdue; too many drivers have to do the same silly
boilerplate to allocate and link up two "independent" structs, when in
fact, everyone is assuming there is an exact 1:1 relationship between a
NAND chips struct and its underlying MTD. This aids improved helpers and
should make certain abstractions easier in the future.
- Also causes a lot of churn, helped along by some automated code
transformations

* add more core support for detecting (and "correcting") bitflips in erased
pages; requires opt-in by drivers, but at least we kill a few bad
implementations and hopefully stave off future ones

* pxa3xx_nand: cleanups, a few fixes, and PM improvements

* new JZ4780 NAND driver

SPI NOR

* provide default erase function, for controllers that just want to send the
SECTOR_ERASE command directly

* fix some module auto-loading issues with device tree ("jedec,spi-nor")

* error handling fixes

* new Mediatek QSPI flash driver

Other

* cfi: force valid geometry Kconfig (finally!)
- this one used to trip up randconfigs occasionally, since bots aren't
deterred by big scary "advanced configuration" menus

More? Probably. See the commit logs.

----------------------------------------------------------------
Alex Smith (2):
doc: dt: mtd: new binding for jz4780-{nand,bch}
mtd: nand: jz4780: driver for NAND devices on JZ4780 SoCs

Andreas Fenkart (1):
mtd: spi-nor: mx25l3205d/mx25l6405d: append SECT_4K

Arnd Bergmann (4):
mtd: cfi: enforce valid geometry configuration
mtd: cfi: don't warn about broken geometry for !CONFIG_MTD
mtd: omap_elm: print interrupt resource using %pr
mtd: sh_flctl: pass FIFO as physical address

Bayi Cheng (3):
doc: dt: mtd: add documentation for Mediatek spi-nor controller
mtd: mtk-nor: new Mediatek serial flash controller driver
mtd: mtk-nor: adjust sequence of trigger function and assignment function

Boris BREZILLON (79):
mtd: nand: convert to nand_get_flash_node()
mtd: nand: fix drivers abusing mtd->priv
mtd: nand: add an mtd_to_nand() helper
doc: mtd: nand: update examples to use mtd_to_nand()
mtd: nand: fix ONFI parameter page layout
ARM: nand: make use of mtd_to_nand() where appropriate
sh: nand: make use of mtd_to_nand() where appropriate
mtd: nand: make use of mtd_to_nand() in NAND core code
staging: mt29f_spinand: make use of mtd_to_nand()
mtd: nand: make use of mtd_to_nand() in NAND drivers
mtd: nand: embed an mtd_info structure into nand_chip
mtd: nand: add nand_to_mtd() helper
cris: nand: make use of mtd_to_nand() where appropriate
blackfin: nand: make use of mtd_to_nand() where appropriate
mips: nand: make use of mtd_to_nand() where appropriate
mtd: nand: denali: add missing nand_release() call in denali_remove()
mtd: nand: fsmc: create and use mtd_to_fsmc()
mtd: nand: nuc900: create and use mtd_to_nuc900()
mtd: nand: omap2: create and use mtd_to_omap()
mtd: nand: ams-delta: use the mtd instance embedded in struct nand_chip
mtd: nand: atmel: use the mtd instance embedded in struct nand_chip
mtd: nand: au1550nd: use the mtd instance embedded in struct nand_chip
mtd: nand: bf5xx: use the mtd instance embedded in struct nand_chip
mtd: nand: brcm: use the mtd instance embedded in struct nand_chip
mtd: nand: cafe: use the mtd instance embedded in struct nand_chip
mtd: nand: cs553x: use the mtd instance embedded in struct nand_chip
mtd: nand: cmx270: use the mtd instance embedded in struct nand_chip
mtd: nand: davinci: use the mtd instance embedded in struct nand_chip
mtd: nand: diskonchip: use the mtd instance embedded in struct nand_chip
mtd: nand: docg4: use the mtd instance embedded in struct nand_chip
mtd: nand: fsl_elbc: use the mtd instance embedded in struct nand_chip
mtd: nand: fsl_ifc: use the mtd instance embedded in struct nand_chip
mtd: nand: fsl_upm: use the mtd instance embedded in struct nand_chip
mtd: nand: fsmc: use the mtd instance embedded in struct nand_chip
mtd: nand: gpio: use the mtd instance embedded in struct nand_chip
mtd: nand: gpmi: use the mtd instance embedded in struct nand_chip
mtd: nand: hisi504: use the mtd instance embedded in struct nand_chip
mtd: nand: jz4740: use the mtd instance embedded in struct nand_chip
mtd: nand: lpc32xx: use the mtd instance embedded in struct nand_chip
mtd: nand: mpc5121: use the mtd instance embedded in struct nand_chip
mtd: nand: mxc: use the mtd instance embedded in struct nand_chip
mtd: nand: nandsim: use the mtd instance embedded in struct nand_chip
mtd: nand: ndfc: use the mtd instance embedded in struct nand_chip
mtd: nand: nuc900: use the mtd instance embedded in struct nand_chip
mtd: nand: omap2: use the mtd instance embedded in struct nand_chip
mtd: nand: orion: use the mtd instance embedded in struct nand_chip
mtd: nand: pasemi: use the mtd instance embedded in struct nand_chip
mtd: nand: plat: use the mtd instance embedded in struct nand_chip
mtd: nand: pxa3xx: use the mtd instance embedded in struct nand_chip
mtd: nand: r852: use the mtd instance embedded in struct nand_chip
mtd: nand: sh_flctl: use the mtd instance embedded in struct nand_chip
mtd: nand: sharpsl: use the mtd instance embedded in struct nand_chip
mtd: nand: sunxi: use the mtd instance embedded in struct nand_chip
mtd: nand: tmio: use the mtd instance embedded in struct nand_chip
mtd: nand: txx9ndfmc: use the mtd instance embedded in struct nand_chip
mtd: nand: vf610: use the mtd instance embedded in struct nand_chip
mtd: nand: update the documentation to reflect framework changes
mtd: nand: s3c2410: use the mtd instance embedded in struct nand_chip
staging: mt29f_spinand: use the mtd instance embedded in struct nand_chip
cris: nand: use the mtd instance embedded in struct nand_chip
mtd: nand: bcm47xx: use the mtd instance embedded in struct nand_chip
mtd: nand: socrates: use the mtd instance embedded in struct nand_chip
mtd: nand: denali: use the mtd instance embedded in struct nand_chip
mtd: nand: update mtd_to_nand()
mtd: nand: remove useless mtd->priv = chip assignments
cris: nand: remove useless mtd->priv = chip assignments
staging: mt29f_spinand: remove useless mtd->priv = chip assignment
mtd: nand: simplify nand_dt_init() usage
mtd: nand: kill the chip->flash_node field
mtd: nand: remove unused and buggy get_platform_nandchip() helper function
mtd: nand: return consistent error codes in ecc.correct() implementations
mtd: nand: use nand_check_erased_ecc_chunk in default ECC read functions
mtd: nand: davinci: remove custom 'erased check' implementation
mtd: nand: diskonchip: remove custom 'erased check' implementation
mtd: nand: jz4740: remove custom 'erased check' implementation
mtd: nand: add helpers to access ->priv
ARM: make use of nand_set/get_controller_data() helpers
mtd: nand: make use of nand_set/get_controller_data() helpers
staging: mt29f_spinand: make use of nand_set/get_controller_data() helpers

Brian Norris (48):
mtd: add get/set of_node/flash_node helpers
mtd: ofpart: grab device tree node directly from master device node
mtd: {nand,spi-nor}: assign MTD of_node
mtd: nand: convert to nand_set_flash_node()
mtd: spi-nor: convert to spi_nor_{get, set}_flash_node()
mtd: nand: drop unnecessary partition parser data
mtd: spi-nor: drop unnecessary partition parser data
mtd: spi-nor: drop flash_node field
mtd: drop unnecessary partition parser data
mtd: ofpart: drop 'of_node' partition parser data
mtd: physmap_of: assign parent for the concatenated MTD
mtd: grab a reference to the MTD of_node before registering it
mtd: zero out mtd_partition struct before using it
mtd: partitions: kill unused ecclayout struct
Merge v4.4-rc1 into MTD development
Merge MTD 4.4 development into MTD -next
mtd: spi-nor: remove unnecessary leading space from dbg print
mtd: fsl-quadspi: possible NULL dereference
mtd: brcmnand: clean up flash cache for parameter pages
mtd: brcmnand: drop unused subpage_read() support
mtd: merge in mtd_to_nand() branch
mtd: spi-nor: provide default erase_sector implementation
mtd: m25p80: drop erase() callback
mtd: m25p80: fix module autoloading for "jedec, spi-nor" and "spi-nor"
mtd: m25p80: replace leftover "nor-jedec" with "spi-nor" in comments
doc: dt: mtd: stop referring to driver code for spi-nor IDs
mtd: partitions: add module_mtd_part_parser() helper
mtd: kill off MTD partition parser boilerplate
mtd: nand: fix typo (t_ald -> t_adl)
mtd: brcmnand: drop brcmnand_host::of_node field
mtd: partitions: turn PART() macro into inline function
mtd: mtk-quadspi: drop unnecessary .owner assignment
Merge arch/{arm,blackfin,cris,mips}/ refactoring patches into MTD dev
mtd: merge for-4.4 development into -next development
mtd: ofpart: assign return argument exactly once
mtd: partitions: make parsers return 'const' partition arrays
mtd: partitions: rename MTD parser get/put
mtd: partitions: remove kmemdup()
mtd: partitions: pass around 'mtd_partitions' wrapper struct
mtd: partitions: support a cleanup callback for parsers
mtd: brcmnand: defer to devm_ioremap_resource() for error checking
mtd: bcm47xxnflash: really unregister NAND on device removal
mtd: nand: docg4: simplify error case
mtd: merge MTD development from v4.4 into for-v4.5 development
mtd: nand: assign reasonable default name for NAND drivers
mtd: jz4780_nand: remove useless mtd->priv = chip assignment
mtd: nandsim: use nand_get_controller_data()
mtd: jz4780_nand: replace if/else blocks with switch/case

Ezequiel GarcÃa (7):
mtd: pxa3xx_nand: Increase the initial chunk size
mtd: pxa3xx_nand: Fix initial controller configuration
mtd: pxa3xx_nand: Simplify pxa3xx_nand_scan
mtd: pxa3xx_nand: Remove redundant NAND sensing
mtd: pxa3xx_nand: Remove dead code
mtd: pxa3xx_nand: Gate/ungate the NAND clock in suspend/resume paths
mtd: spi-nor: wait until lock/unlock operations are ready

Fabian Frederick (2):
mtd: cfi_cmdset_0002: use swap() in cfi_cmdset_0002()
mtd: ftl: use swap() in copy_erase_unit()

Fabio Estevam (2):
mtd: mxc_nand: Remove bit-or operation with zero
mtd: spi-nor: Check the return value from read_sr()

Geert Uytterhoeven (1):
mtd: nand: Confine MTD_NAND_SH_FLCTL to SUPERH

Geliang Tang (1):
jffs2: use to_delayed_work

Harvey Hunt (1):
mtd: nand: jz4780: Update ecc correction error codes

Heiner Kallweit (1):
mtd: spi-nor: fix error handling in spi_nor_erase

Helmut Schaa (1):
mtd: nand: Disable subpage writes for drivers without ecc->hwctl

Insu Yun (1):
mtd: cfi_cmdset_0001: fixing memory leak and handling failed kmalloc

Julia Lawall (2):
mtd: brcmnand: improve memory management
mtd: nand: sunxi: add missing of_node_put

LABBE Corentin (1):
mtd: nand: atmel_nand: constify atmel_nand_caps structures

Lars-Peter Clausen (1):
mtd: nand: r852: Remove unnecessary synchronize_irq() before free_irq()

Linus Walleij (4):
mtd: afs: rename structs and functions for v1
mtd: enable AFS selection for ARM64
mtd: afs: break out v1 footer magic to a define
mtd: afs: refactor v1 partition parsing

Masahiro Yamada (1):
mtd: denali: make MTD_NAND_DENALI_DT dependent on OF

Michal Suchanek (1):
mtd: ofpart: document the lock flag.

Nicholas Mc Guire (1):
mtd: tests: consolidate kmalloc/memset 0 call to kzalloc

Nicolas Pitre (1):
mtd: sm_ftl: fix wrong do_div() usage

RafaÅ MiÅecki (1):
mtd: spi-nor: include mtd.h header for struct mtd_info definition

Ricardo Ribalda Delgado (1):
mtd: spi-nor: Fix error message with unrecognized JEDEC

Simon Arlott (4):
brcmnand: Clear EXT_ADDR error registers in PIO mode
doc: dt: mtd: brcmnand: Add brcm,bcm6368-nand device tree binding
mtd: brcmnand: Request and enable the clock if present
mtd: brcmnand: Add support for the BCM6368

Stephen Rothwell (1):
mtd: nand: fix for drop unnecessary partition parser data

Wang YanQing (1):
Documentation: mtd: improve nand_ecc.txt for readability and correctness

Documentation/DocBook/mtdnand.tmpl | 35 +-
.../devicetree/bindings/mtd/brcm,brcmnand.txt | 32 ++
.../bindings/mtd/ingenic,jz4780-nand.txt | 86 ++++
.../devicetree/bindings/mtd/jedec,spi-nor.txt | 56 ++-
.../devicetree/bindings/mtd/mtk-quadspi.txt | 41 ++
.../devicetree/bindings/mtd/partition.txt | 2 +
Documentation/mtd/nand_ecc.txt | 58 +--
arch/arm/mach-ep93xx/snappercl15.c | 4 +-
arch/arm/mach-ep93xx/ts72xx.c | 4 +-
arch/arm/mach-imx/mach-qong.c | 2 +-
arch/arm/mach-ixp4xx/ixdp425-setup.c | 6 +-
arch/arm/mach-omap1/board-nand.c | 2 +-
arch/arm/mach-orion5x/ts78xx-setup.c | 6 +-
arch/arm/mach-pxa/balloon3.c | 2 +-
arch/arm/mach-pxa/em-x270.c | 2 +-
arch/arm/mach-pxa/palmtx.c | 2 +-
arch/blackfin/mach-bf537/boards/stamp.c | 2 +-
arch/blackfin/mach-bf561/boards/acvilon.c | 2 +-
arch/cris/arch-v32/drivers/mach-a3/nandflash.c | 8 +-
arch/cris/arch-v32/drivers/mach-fs/nandflash.c | 8 +-
arch/mips/alchemy/devboards/db1200.c | 2 +-
arch/mips/alchemy/devboards/db1300.c | 2 +-
arch/mips/alchemy/devboards/db1550.c | 2 +-
arch/mips/pnx833x/common/platform.c | 2 +-
arch/mips/rb532/devices.c | 2 +-
arch/sh/boards/mach-migor/setup.c | 2 +-
drivers/mtd/Kconfig | 2 +-
drivers/mtd/afs.c | 82 ++--
drivers/mtd/ar7part.c | 18 +-
drivers/mtd/bcm47xxpart.c | 18 +-
drivers/mtd/bcm63xxpart.c | 18 +-
drivers/mtd/chips/Kconfig | 4 +
drivers/mtd/chips/cfi_cmdset_0001.c | 8 +-
drivers/mtd/chips/cfi_cmdset_0002.c | 6 +-
drivers/mtd/cmdlinepart.c | 3 +-
drivers/mtd/devices/m25p80.c | 44 +-
drivers/mtd/devices/mtd_dataflash.c | 5 +-
drivers/mtd/devices/spear_smi.c | 6 +-
drivers/mtd/devices/st_spi_fsm.c | 5 +-
drivers/mtd/ftl.c | 8 +-
drivers/mtd/maps/lantiq-flash.c | 5 +-
drivers/mtd/maps/physmap_of.c | 6 +-
drivers/mtd/mtdcore.c | 40 +-
drivers/mtd/mtdcore.h | 7 +-
drivers/mtd/mtdpart.c | 133 ++++--
drivers/mtd/nand/Kconfig | 11 +-
drivers/mtd/nand/Makefile | 1 +
drivers/mtd/nand/ams-delta.c | 26 +-
drivers/mtd/nand/atmel_nand.c | 134 +++---
drivers/mtd/nand/au1550nd.c | 40 +-
drivers/mtd/nand/bcm47xxnflash/bcm47xxnflash.h | 1 -
drivers/mtd/nand/bcm47xxnflash/main.c | 16 +-
drivers/mtd/nand/bcm47xxnflash/ops_bcm4706.c | 34 +-
drivers/mtd/nand/bf5xx_nand.c | 45 +-
drivers/mtd/nand/brcmnand/Makefile | 1 +
drivers/mtd/nand/brcmnand/bcm6368_nand.c | 142 ++++++
drivers/mtd/nand/brcmnand/brcmnand.c | 166 ++++---
drivers/mtd/nand/cafe_nand.c | 43 +-
drivers/mtd/nand/cmx270_nand.c | 23 +-
drivers/mtd/nand/cs553x_nand.c | 34 +-
drivers/mtd/nand/davinci_nand.c | 60 ++-
drivers/mtd/nand/denali.c | 75 ++--
drivers/mtd/nand/denali.h | 1 -
drivers/mtd/nand/diskonchip.c | 189 ++++----
drivers/mtd/nand/docg4.c | 102 +++--
drivers/mtd/nand/fsl_elbc_nand.c | 64 +--
drivers/mtd/nand/fsl_ifc_nand.c | 74 ++--
drivers/mtd/nand/fsl_upm.c | 35 +-
drivers/mtd/nand/fsmc_nand.c | 69 ++-
drivers/mtd/nand/gpio.c | 26 +-
drivers/mtd/nand/gpmi-nand/gpmi-lib.c | 2 +-
drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 71 ++-
drivers/mtd/nand/gpmi-nand/gpmi-nand.h | 1 -
drivers/mtd/nand/hisi504_nand.c | 53 ++-
drivers/mtd/nand/jz4740_nand.c | 37 +-
drivers/mtd/nand/jz4780_bch.c | 381 ++++++++++++++++
drivers/mtd/nand/jz4780_bch.h | 43 ++
drivers/mtd/nand/jz4780_nand.c | 428 ++++++++++++++++++
drivers/mtd/nand/lpc32xx_mlc.c | 40 +-
drivers/mtd/nand/lpc32xx_slc.c | 49 +--
drivers/mtd/nand/mpc5121_nfc.c | 57 ++-
drivers/mtd/nand/mxc_nand.c | 88 ++--
drivers/mtd/nand/nand_base.c | 157 ++++---
drivers/mtd/nand/nand_bbt.c | 32 +-
drivers/mtd/nand/nand_bch.c | 6 +-
drivers/mtd/nand/nand_ecc.c | 6 +-
drivers/mtd/nand/nandsim.c | 41 +-
drivers/mtd/nand/ndfc.c | 55 ++-
drivers/mtd/nand/nuc900_nand.c | 40 +-
drivers/mtd/nand/omap2.c | 92 ++--
drivers/mtd/nand/omap_elm.c | 2 +-
drivers/mtd/nand/orion_nand.c | 19 +-
drivers/mtd/nand/pasemi_nand.c | 21 +-
drivers/mtd/nand/plat_nand.c | 18 +-
drivers/mtd/nand/pxa3xx_nand.c | 169 ++++---
drivers/mtd/nand/r852.c | 46 +-
drivers/mtd/nand/r852.h | 1 -
drivers/mtd/nand/s3c2410.c | 31 +-
drivers/mtd/nand/sh_flctl.c | 20 +-
drivers/mtd/nand/sharpsl.c | 23 +-
drivers/mtd/nand/sm_common.c | 2 +-
drivers/mtd/nand/socrates_nand.c | 30 +-
drivers/mtd/nand/sunxi_nand.c | 50 +--
drivers/mtd/nand/tmio_nand.c | 13 +-
drivers/mtd/nand/txx9ndfmc.c | 25 +-
drivers/mtd/nand/vf610_nfc.c | 23 +-
drivers/mtd/nand/xway_nand.c | 4 +-
drivers/mtd/ofpart.c | 53 ++-
drivers/mtd/onenand/omap2.c | 8 +-
drivers/mtd/redboot.c | 19 +-
drivers/mtd/sm_ftl.c | 3 +-
drivers/mtd/spi-nor/Kconfig | 7 +
drivers/mtd/spi-nor/Makefile | 1 +
drivers/mtd/spi-nor/fsl-quadspi.c | 14 +-
drivers/mtd/spi-nor/mtk-quadspi.c | 485 +++++++++++++++++++++
drivers/mtd/spi-nor/nxp-spifi.c | 6 +-
drivers/mtd/spi-nor/spi-nor.c | 77 +++-
drivers/mtd/tests/pagetest.c | 3 +-
drivers/staging/mt29f_spinand/mt29f_spinand.c | 24 +-
fs/jffs2/wbuf.c | 2 +-
include/linux/bcma/bcma_driver_chipcommon.h | 6 +-
include/linux/mtd/map.h | 2 +
include/linux/mtd/mtd.h | 11 +
include/linux/mtd/nand.h | 71 ++-
include/linux/mtd/nand_bch.h | 2 +-
include/linux/mtd/partitions.h | 27 +-
include/linux/mtd/sh_flctl.h | 4 +-
include/linux/mtd/spi-nor.h | 19 +-
128 files changed, 3469 insertions(+), 1753 deletions(-)
create mode 100644 Documentation/devicetree/bindings/mtd/ingenic,jz4780-nand.txt
create mode 100644 Documentation/devicetree/bindings/mtd/mtk-quadspi.txt
create mode 100644 drivers/mtd/nand/brcmnand/bcm6368_nand.c
create mode 100644 drivers/mtd/nand/jz4780_bch.c
create mode 100644 drivers/mtd/nand/jz4780_bch.h
create mode 100644 drivers/mtd/nand/jz4780_nand.c
create mode 100644 drivers/mtd/spi-nor/mtk-quadspi.c