tree e7b7f1cf30ba702e533a95e7ae1939efee3c9e8f
parent 8bdc69b764013a9b5ebeef7df8f314f1066c5d79
parent 718e38b4d96085b4dab08d3d32e5e033aa1ba6e9
author Linus Torvalds <torvalds@linux-foundation.org> 1441221384 -0700
committer Linus Torvalds <torvalds@linux-foundation.org> 1441221384 -0700
mergetag object 718e38b4d96085b4dab08d3d32e5e033aa1ba6e9
 type commit
 tag for-linus-20150901
 tagger Brian Norris <computersforpeace@gmail.com> 1441143304 -0700
 
 MTD updates for 4.3-rc1:
 
  SPI NOR
   * reduce virtual address space requirements for fsl-quadspi memory map
   * new fsl-quadspi IP support: imx6ul-qspi and imx7d-qspi
   * add new NOR flash device support
   * add new driver for NXP SPI Flash Interface (SPIFI)
   * stop abusing SPI API structs for non-SPI framework
   * fixup DT table matching for new "jedec,spi-nor" string
 
  NAND
   * brcmnand: fix big endian MIPS macro usage
   * denali: refactor to use devres, dev_*() printing, etc.
   * OMAP ELM: change the module alias to actually be usable
   * pxa3xx_nand: fixup a few command sequencing issues -- both new and old
       - race conditions in the IRQ handler status clearing
       - problems when a bootloader left interrupts pending
       - config issues when overriding the bootloader configuration
   * new flash device support
   * sunxi_nand:
       - optimize timing configuration by calculation, rather than fixed
         fail-safe values
       - use EDO setting from ONFI
   * r852: fix compiler warnings
   * davinci: add 4KB page support
 
  Core
   * oobtest: correct debug print information
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJV5h5kAAoJEFySrpd9RFgt0fYP/3mw4kn4F8c+LjD4BTgx95Zt
 QQ0AZ8lnv+++NvlXsYH6RwqO1prqDceSNlPfdfIuMNIyinYZ/qpacGqxDMtZ5/IT
 HiTQRNlHrIejb5mA7bJueWuxN2O+O83e0k48KTgUiW+H6APgpCgq6tOvNu70zByz
 u8FFqMMefM2RrUdI4ittZLFs+BdM5HPw4MrR3c+itBITOEH3xt0tYjH0q/ie68CV
 8mK0YP0DFnLFczBd3sqs4B24nOypezXLEJWZ0rD5XjKXm7XZ+9h3rKsfagtrBa14
 ZO6+G49Wsf83M1chVQ6D++vinV1MyUrhfC+LE5D6gKJGlsRI1Yguw3vyNKpjAi61
 MzKQY/uRiDLQI/OJ28TM50DYXLVvyWPNjXVB0+O8Y3jYcNpyLKPUv2LQdKuZcLsq
 PqSEyOh/6fOsr98ozt7CUCMORKhtekxBtOUSjNisdbl1vSOPysws91TftHaXXvZl
 4AFEk1wmrp6FWOaeN5ZoYihF39fHl6XAZEhJZPGdOKXbuHK9Bdrspr8c2PMArOUj
 uevP20Ol3vq+7Uc0A6xwPlk4mj97aP3xH18eRdTE6V0WLC4gjc2jMYlg/lpvYVvD
 o1iJgHcqN5dgHsfJIkyRH4ymL404pd3W/5CfMqnMjDvXtL7pcZ8Sr1G6XSMZGyYB
 XAT43tzKGA2GjGd4Pqin
 =vpBS
 -----END PGP SIGNATURE-----

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

Pull MTD updates from Brian Norris:
 "SPI NOR:
   - reduce virtual address space requirements for fsl-quadspi memory map
   - new fsl-quadspi IP support: imx6ul-qspi and imx7d-qspi
   - add new NOR flash device support
   - add new driver for NXP SPI Flash Interface (SPIFI)
   - stop abusing SPI API structs for non-SPI framework
   - fixup DT table matching for new "jedec,spi-nor" string

  NAND:
   - brcmnand: fix big endian MIPS macro usage
   - denali: refactor to use devres, dev_*() printing, etc.
   - OMAP ELM: change the module alias to actually be usable
   - pxa3xx_nand: fixup a few command sequencing issues -- both new and old
      - race conditions in the IRQ handler status clearing
      - problems when a bootloader left interrupts pending
      - config issues when overriding the bootloader configuration
   - new flash device support
   - sunxi_nand:
      - optimize timing configuration by calculation, rather than fixed
        fail-safe values
      - use EDO setting from ONFI
   - r852: fix compiler warnings
   - davinci: add 4KB page support

  Core:
   - oobtest: correct debug print information"

* tag 'for-linus-20150901' of git://git.infradead.org/linux-mtd: (42 commits)
  mtd: mtd_oobtest: Fix the address offset with vary_offset case
  mtd: blkdevs: fix switch-bool compilation warning
  mtd: spi-nor: stop (ab)using struct spi_device_id
  mtd: nand: add Toshiba TC58NVG0S3E to nand_ids table
  mtd: dataflash: Export OF module alias information
  nand: pxa3xx: Increase READ_ID buffer and make the size static
  mtd: nand: pxa3xx-nand: fix random command timeouts
  mtd: nand: pxa3xx_nand: fix early spurious interrupt
  mtd: pxa3xx_nand: add a default chunk size
  mtd: omap_elm: Fix module alias
  mtd: physmap_of: fix null pointer deference when kzalloc returns null
  mtd: nettel: do not ignore mtd_device_register() failure in nettel_init()
  mtd: denali_pci: switch to dev_err()
  mtd: denali_pci: refactor driver using devres API
  mtd: denali_pci: use module_pci_driver() macro
  mtd: denali: hide core part from user in Kconfig
  mtd: spi-nor: add Spansion S25FL204K support
  mtd: spi-nor: Improve Kconfig help text for SPI_FSL_QUADSPI
  mtd: spi-nor: add driver for NXP SPI Flash Interface (SPIFI)
  doc: dt: add documentation for nxp,lpc1773-spifi
  ...
