tree 47b44c1cc96b9e147e52de0a96e458bd1f0eb200
parent c470abd4fde40ea6a0846a2beab642a578c0b8cd
parent d91f6cee98b6e0ef5a05209ca9b741d23086cdb2
author Linus Torvalds <torvalds@linux-foundation.org> 1487611383 -0800
committer Linus Torvalds <torvalds@linux-foundation.org> 1487611383 -0800
mergetag object d91f6cee98b6e0ef5a05209ca9b741d23086cdb2
 type commit
 tag for-linus-20170212
 tagger Brian Norris <computersforpeace@gmail.com> 1486952484 -0800
 
 MTD updates for 4.11:
 
 General:
  - new kernel API for retrieving max bad blocks per die (not used yet)
  - track (and expose via sysfs) a partition's device tree node
  - support a "label" device tree property for naming an MTD
 
 NAND:
  - sunxi: avoid busy-waiting for NAND events
  - ifc: fix ECC handling on IFC v1.0
  - OX820: add explicit dependency on ARCH_OXNAS in Kconfig
  - core: add a new manufacture ID and fix a kernel-doc warning
  - fsmc: kill pdata support
  - lpc32xx_slc: remove unneeded NULL check
  - support dynamic "max bad blocks" detection via ONFI
 
 SPI NOR:
  - add support for the 4-byte address instruction set
  - add support for new memory parts
  - add support to S3AN memories
  - add support to the Intel SPI controller
  - add support to the Aspeed AST2400 and AST2550 controllers
  - support max SPI message sizes in m25p80_read()
  - fixes for the Candence and Freescale QSPI drivers
 
 Other:
  - add support for Gemini flash probing
  - bcm47xxsflash: add support for reading outside memory-mapped window
  - bcm47xxparts: extend to support multiple TRX partitions
  - misc fixes and typos
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIbBAABAgAGBQJYoRq6AAoJEFySrpd9RFgtZFYP9Rs26KsokTVyjFQ8OZuDZpzp
 0b6SNYKhxzW6FpyMNuG8lK9+TIbmpuQJv8fJY8ns4ET9x5qEYZjlBwr0Oa/g+z+3
 2o4YHc6wx+j2ErTNfas74vzVmCafBycf7tpXizlEpDJekoqysvWb0k5zTqXFsURk
 5l93xZ0t5Xwe7OsCIcoEclTfvWxnge0V6a34jhHo1g2lc0HDi5HlChv+9wyvS8vR
 aCjVoYULErR9/2i65MUzAgN9UtPuEEwRpZz2KYYuBF0xd1EI8ZhDt43jhRnL9ZpK
 7kKwS871WqBGhvnQPRDhhx70cvwsesrd+W601d+O+li2odd6eeWm03XXHbatzYtK
 +MDDzFKp0b/43wVxHwmNj/N7/VXwtzr5mO4pTjqIB3lIeJRhvUKkqIVeo/YRFYo+
 8YizldzA/HbyqzcTazw2i93XbqL2TcbOAkZKTBKE9/tG+omJuLnRRt2tYelS58wv
 i4WFRDA4vADNKGU0XmikmYkO3RDDtGtisum85KXHW6/YtkR5+aRveqW08KuZjr7T
 i3ivjS4wXw6jU3DERTcLX65dOTSrFYXTMtsq2o1JUEOKlT+dNwIk6FNVPDEhMPQi
 ZZVSduUMOxjOSSGltal6FPXsSHSy+dnnfxfL2XCWyYxJiaNzeqFhkP6NXXVQso6I
 aH8XIWqY/Q2deF+oIjc=
 =6y0d
 -----END PGP SIGNATURE-----

Merge tag 'for-linus-20170212' of git://git.infradead.org/linux-mtd

Pull MTD updates from Brian Norris:
 "MTD updates for 4.11:

  General:
   - new kernel API for retrieving max bad blocks per die (not used yet)
   - track (and expose via sysfs) a partition's device tree node
   - support a "label" device tree property for naming an MTD

  NAND:
   - sunxi: avoid busy-waiting for NAND events
   - ifc: fix ECC handling on IFC v1.0
   - OX820: add explicit dependency on ARCH_OXNAS in Kconfig
   - core: add a new manufacture ID and fix a kernel-doc warning
   - fsmc: kill pdata support
   - lpc32xx_slc: remove unneeded NULL check
   - support dynamic "max bad blocks" detection via ONFI

  SPI NOR:
   - add support for the 4-byte address instruction set
   - add support for new memory parts
   - add support to S3AN memories
   - add support to the Intel SPI controller
   - add support to the Aspeed AST2400 and AST2550 controllers
   - support max SPI message sizes in m25p80_read()
   - fixes for the Candence and Freescale QSPI drivers

  Other:
   - add support for Gemini flash probing
   - bcm47xxsflash: add support for reading outside memory-mapped window
   - bcm47xxparts: extend to support multiple TRX partitions
   - misc fixes and typos

  Extra note: we've pulled in an MFD subtree from Lee Jones as a
  dependency for a new Intel SPI NOR driver"

[ Kudos to Brian for sending pull request a week early:

   "I refuse to acknowledge the existence of 4.10-rc8 and am therefore
    sending our MTD changes for 4.11 now"

  which is all good ]

* tag 'for-linus-20170212' of git://git.infradead.org/linux-mtd: (52 commits)
  mtd: aspeed: remove redundant dev_err call in aspeed_smc_probe()
  dt-bindings: mtd: add a common label property to all mtd devices
  mtd: name the mtd device with an optional label property
  mtd: physmap_of: fixup gemini/versatile dependencies
  mtd: spi-nor: cqspi: remove redundant dead code on error return check
  Documentation: mtk-quadspi: update DT bindings
  mtd: fsl-quadspi: Rename SEQID_QUAD_READ to SEQID_READ
  mtd:fsl-quadspi:use the property fields of SPI-NOR
  mtd: spi-nor: Add support for gd25q16
  mtd: spi-nor: Fix S3AN addressing calculation
  mtd: aspeed: fix compile warning in aspeed_smc_read_from_ahb()
  mtd: spi-nor: add dt support for Everspin MRAMs
  mtd: spi-nor: Add lock/unlock support for f25l32pa
  mtd: spi-nor: add a stateless method to support memory size above 128Mib
  mtd: spi-nor: rename SPINOR_OP_* macros of the 4-byte address op codes
  mtd: m25p80: consider max message size in m25p80_read
  mtd: spi-nor: bindings for the Aspeed memory controllers
  mtd: aspeed: add memory controllers for the Aspeed AST2400 SoC
  mtd: spi-nor: add memory controllers for the Aspeed AST2500 SoC
  mtd: spi-nor: remove WARN_ONCE() message in spi_nor_write()
  ...
