[GIT PULL] mtd: Changes for 7.4

Miquel Raynal miquel.raynal at bootlin.com
Fri Oct 23 10:02:00 PDT 2026


Hello,

This is the MTD PR for 7.4.

Thanks,
Miquèl

The following changes since commit cee9395acd8043be0644b25c34bfa86623f2b935:

  Linux 7.3-rc1 (2026-08-30 13:34:40 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git tags/mtd/for-7.4

for you to fetch changes up to 0ef71adafaa9b36a06dd5b823aebcd2fa9b9b9c2:

  Merge tag 'spi-nor/for-7.4' into mtd/next (2026-10-23 18:50:09 +0200)

----------------------------------------------------------------
Core MTD:
- Some important fixes were brought to the virt-concat driver.
- An INT0800 firmware-flash map driver was added.
- mtdblock: prevent reclaim I/O during request processing.
- cfi_cmdset_0002: cap the write-buffer chunk at 256 bytes on an x8 device

Raw NAND:
- The Qualcomm controller driver has been cleaned up again.
- Arasan and IBM have been improved/created.
- Reflect that ESMT and GigaDevice share ID 0xc8, and disable broken
  timings feature on GD9FU2G8F3A.
- Platform data support has been dropped from the lpc32xx drivers.

SPI NAND:
- Heyangtek uses two bytes for the BBM like every other device.
- Winbond: Add support for W25N04LW and W25N08LW.
- Support for ISSI SPI NAND flashes.

SPI NOR:
- Support for new Macronix and (lots of) Winbond flash devices
- The addition of the Winbond flashes was accompanied by a big rewrite
  of the status register handling. There were many small helper
  functions to enable quad I/O mode in many different ways. That's now
  consolidated in one generic function.
- The SFPD handling was reworked. It used to be only parsed for flashes
  present in the in-kernel database which had any of the multi-I/O bit
  set - or with the addition of generic flash driver for any unknown
  flashes. This left a gap where SFDP wasn't handled and it turns out
  newer flashes (with SFDP support) will reused IDs of just these old
  flashed. With the rework, SFDP is tried to be parsed for any flashes
  and will amend the information which is already present in the
  in-kernel database.
- SFDP size limit was increased to 16KiB. There are flashes which have
  some larger gaps between tables and thus exceeds the former 4KiB
  limit.
- Flash fixups are getting more and more common. Due to this, the fixups
  are now a separate list (per manufacturer) instead of being attached
  to a specific flash. A new .match() callback makes them more flexible,
  when one is applied.
- 1-1-8 and 1-8-8 modes are now supported with larger flashes which
  needs 4byte addresses.

Then there is the load of API updates and misc AI fixes.

----------------------------------------------------------------
Bill Lee (1):
      mtd: spinand: add support for ISSI SPI NAND flash

Cheng Ming Lin (3):
      mtd: spi-nor: macronix: Document support for additional flash aliases
      mtd: spi-nor: Add support for MX25L12833F and MX25L12845G
      mtd: spi-nor: macronix: Restore fallback parameters for MX25L12805D

Dominique Martinet (1):
      mtd: spinand: winbond: add support for W25N04LW

Frank Li (2):
      mtd: use dmaengine_get_dma_device() instead of chan->device->dev
      mtd: nand: use dmaengine_submit() instead of ->tx_submit()

Gabor Juhos (10):
      mtd: nand: qpic_common: drop stray empty line from struct 'bam_transaction'
      mtd: rawnand: qcom: make check_flash_errors() more generic
      mtd: rawnand: qcom: make config_nand_page_read() more generic
      mtd: rawnand: qcom: make config_nand_page_write() more generic
      mtd: rawnand: qcom: make config_nand_cw_write() more generic
      mtd: rawnand: qcom: make nandc_set_read_loc_first() more generic
      mtd: rawnand: qcom: make nandc_set_read_loc_last() more generic
      mtd: rawnand: qcom: rename 'nand_stats' structure
      mtd: rawnand: qcom: move common code to the 'qpic_common' module
      mtd: rawnand: qcom: fix read location register usage in config_nand_cw_read()

Guangshuo Li (1):
      mtd: rawnand: nuvoton: fix clock cleanup on probe failure

Haotian Zhang (1):
      mtd: rawnand: pl353: fix clk reference leak in pl35x_nfc_setup_interface()

Harshit Mogalapalli (3):
      mtd: concat: use container_of_const() in CONCAT()
      mtd: virt-concat: unlink concat node before freeing it
      mtd: virt-concat: unlink discarded items before freeing

Hemanth Selam (1):
      mtd: fix typos in comments

HyeongJun An (2):
      mtd: spi-nor: sfdp: check the length of the xSPI Profile 1.0 table
      mtd: spi-nor: sfdp: check the length of the SCCR map

James Hilliard (5):
      mtd: rawnand: sunxi: propagate user-data allocation errors
      mtd: rawnand: sunxi: reserve a full user-data word for BBM
      mtd: rawnand: sunxi: use a stack buffer for BBM randomization
      mtd: rawnand: sunxi: reject ECC maximization on small pages
      mtd: rawnand: sunxi: fix free OOB section offsets

Karl Mehltretter (1):
      mtd: spinand: Fix spinand_manufacturer_ops kernel-doc

Michael Walle (11):
      mtd: spi-nor: spansion: s25fl256s0: remove SKIP_SFDP flag
      mtd: spi-nor: don't clear the SNOR_F_4B_OPCODES flag on failure
      mtd: spi-nor: move cmd_ext_type into spi_nor_flash_parameter
      mtd: spi-nor: move flags into spi_nor_flash_parameter
      mtd: spi-nor: move spi_nor_post_bfpt_fixups() into sfdp
      mtd: spi-nor: spansion: s25fs256t: move ARCFN check into .late_init
      mtd: spi-nor: push the rollback mechanism into the sfdp module
      mtd: spi-nor: rework flash parameter initialization
      mtd: spi-nor: xmc: add locking to XM25QH128A
      mtd: spi-nor: sfdp: fix missing kernel-doc
      mtd: spi-nor: sfdp: reduce stack usage in spi_nor_parse_sfdp()

Miquel Raynal (80):
      mtd: spi-nor: Unprepare legacy controllers upon RWW wait interruption
      mtd: spi-nor: Fix spacing in function call
      mtd: spi-nor: Garbage collection during sfdp parsing
      mtd: spi-nor: Init flags before manufacturer late_init() hooks
      mtd: spi-nor: winbond: Move W25Q01NW to its right place
      mtd: spi-nor: winbond: Normalize names
      mtd: spi-nor: winbond: Properly document the chip names
      mtd: spi-nor: winbond: Make the RDCR fixup Winbond wide
      mtd: spi-nor: winbond: W25Q32JV-Q/N: Add quad page program capability
      mtd: spi-nor: winbond: W25Q64JV-Q/N: Add quad page program capability
      mtd: spi-nor: winbond: W25Q128JV-Q/N: Add quad page program capability
      mtd: spi-nor: winbond: W25Q32JV-M: Add quad page program capability
      mtd: spi-nor: winbond: W25Q64JV-M: Add quad page program capability
      mtd: spi-nor: winbond: W25Q128JV-M: Add quad page program capability
      mtd: spi-nor: winbond: W25QxxJV-Q/N/M: Add quad page program capability
      mtd: spi-nor: winbond: W25Q32JV-Q/N: Fill locking information
      mtd: spi-nor: winbond: W25Q64JV-Q/N: Fill locking information
      mtd: spi-nor: winbond: W25Q128JV-Q/N: Fill locking information
      mtd: spi-nor: winbond: W25Q512JV-Q/N: Fill locking information
      mtd: spi-nor: winbond: W25Q01JV-Q/N: Fill locking information
      mtd: spi-nor: winbond: W25Q32JV-M: Fill locking information
      mtd: spi-nor: winbond: W25Q64JV-M: Fill locking information
      mtd: spi-nor: winbond: W25Q128JV-M: Fill locking information
      mtd: spi-nor: winbond: W25Q02JV-M: Fill locking information
      mtd: spi-nor: winbond: W25QxxJV-Q/N/M: Fill locking information
      mtd: spi-nor: winbond: W25Q512JV-M: New chip
      mtd: spi-nor: winbond: W25Q01JV-M: New chip
      mtd: spi-nor: Rename BFPT_DWORD15_QER_SR2_BIT1_BUGGY
      mtd: spi-nor: Create a structure containing the flash opcodes
      mtd: spi-nor: Refactor Read Status/Write Status support
      mtd: spi-nor: Add support for the new JESD216 rev F QER field
      mtd: spi-nor: Create the concept of fixup table with match function
      mtd: spi-nor: Move the fixup flags into the fixup list
      mtd: spi-nor: Create an indirection on the part name
      mtd: spi-nor: Move the SFDP header structure to a C header
      mtd: spi-nor: winbond: Prepare introduction of W25QxxRV-Q/N parts
      mtd: spi-nor: winbond: Add support for W25Q32RV-Q/N
      mtd: spi-nor: winbond: Add support for W25Q64RV-Q/N
      mtd: spi-nor: winbond: Add support for W25Q12RV-Q/N
      mtd: spi-nor: winbond: Add support for W25Q25RV-Q/N
      mtd: spi-nor: winbond: Add support for W25Q51RV-Q/N
      mtd: spi-nor: winbond: Add support for W25Q01RV-Q/N
      mtd: spi-nor: winbond: Add support for W25Q02RV-Q/N
      mtd: spi-nor: winbond: Prepare introduction of W25QxxRV-M parts
      mtd: spi-nor: winbond: Add support for W25Q32RV-M
      mtd: spi-nor: winbond: Add support for W25Q64RV-M
      mtd: spi-nor: winbond: Add support for W25Q12RV-M
      mtd: spi-nor: winbond: Add support for W25Q25RV-M
      mtd: spi-nor: winbond: Add support for W25Q51RV-M
      mtd: spi-nor: winbond: Add support for W25Q01RV-M
      mtd: spi-nor: winbond: Add support for W25Q02RV-M
      mtd: spi-nor: debugfs: Expose SR opcodes and QE mask
      mtd: spi-nor: Fix quad-enable for flashes with QER bit in SR1
      mtd: spi-nor: winbond: W25Q32xW-Q/N: Enhance identification of the chips
      mtd: spi-nor: winbond: W25Q64xW-Q/N: Enhance identification of the chips
      mtd: spi-nor: winbond: W25Q32xW-Q/N: Fill locking information
      mtd: spi-nor: winbond: W25Q64xW-Q/N: Fill locking information
      mtd: spi-nor: winbond: W25Q128JW-Q/N: Fill locking information
      mtd: spi-nor: winbond: W25Q32JW-M: Fill locking information
      mtd: spi-nor: winbond: W25Q64JW-M: Fill locking information
      mtd: spi-nor: winbond: W25Q128JW-M: Fill locking information
      mtd: spi-nor: winbond: W25Q256JW-Q/N/M: Fill locking information
      mtd: spi-nor: winbond: W25Q32JW-Q/N: Add quad page program capability
      mtd: spi-nor: winbond: W25Q64JW-Q/N: Add quad page program capability
      mtd: spi-nor: winbond: W25Q128JW-Q/N: Add quad page program capability
      mtd: spi-nor: winbond: W25Q32JW-M: Add quad page program capability
      mtd: spi-nor: winbond: W25Q64JW-M: Add quad page program capability
      mtd: spi-nor: winbond: W25Q128JW-M: Add quad page program capability
      mtd: spi-nor: winbond: Prepare introduction of W25QxxPW-Q/N parts
      mtd: spi-nor: winbond: Add support for W25Q33PW-Q/N
      mtd: spi-nor: winbond: Add support for W25Q64PW-Q/N
      mtd: spi-nor: winbond: Add support for W25Q12PW-Q/N
      mtd: spi-nor: winbond: Add support for W25Q25PW-Q/N
      mtd: spi-nor: winbond: Prepare introduction of W25QxxPW-M parts
      mtd: spi-nor: winbond: Add support for W25Q33PW-M
      mtd: spi-nor: winbond: Add support for W25Q64PW-M
      mtd: spi-nor: winbond: Add support for W25Q12PW-M
      mtd: spi-nor: winbond: Add support for W25Q25PW-M
      Merge tag 'nand/for-7.4' into mtd/next
      Merge tag 'spi-nor/for-7.4' into mtd/next

Myeonghun Pak (1):
      mtd: maps: pci: balance PCI enable on cleanup

Navid Ghahremani (1):
      mtd: spinand: heyangtek: Reserve both bad block marker bytes

Nuno Sá (2):
      mtd: spi-nor: sfdp: get the 1-1-8 and 1-8-8 page programs from 4BAIT
      mtd: spinand: winbond: Add support for W25N08LW

Orgad Shaneh (1):
      mtd: cfi_cmdset_0002: cap the write-buffer chunk at 256 bytes on an x8 device

Peng Fan (1):
      mtd: cfi_cmdset_0001: use assign_bit() where applicable

Peter-Simon Dieterich (2):
      mtd: rawnand: esmt: Disable broken timings feature on GD9FU2G8F3A
      mtd: rawnand: Reflect that ESMT and GigaDevice share ID 0xc8

Qingfang Deng (1):
      mtd: block: prevent reclaim I/O during request processing

Richard Weinberger (1):
      mtd: Call get_wunit() on the master partition

Rob Herring (Arm) (1):
      dt-bindings: mtd: arasan: Add "power-domains" for ZynqMP

Rosen Penev (9):
      mtd: nand: omap2: Fix kernel-doc parameter warning
      mtd: rawnand: ndfc: use devm_platform_ioremap_resource()
      mtd: rawnand: fsl_ifc: use devm_platform_get_and_ioremap_resource
      mtd: powernv_flash: fix kernel-doc for powernv_flash_release
      mtd: docg3: use devm_platform_ioremap_resource()
      mtd: rawnand: ndfc: use devm_kasprintf for mtd name
      mtd: rawnand: fsl_ifc: use devm_kasprintf for mtd name
      mtd: rawnand: fsl_ifc: allocate shared ctrl with devm_kzalloc
      dt-bindings: mtd: convert IBM NDFC binding to YAML

Stephen Bancroft (1):
      mtd: maps: add INT0800 firmware-flash map driver

Takahiro Kuwano (4):
      mtd: spi-nor: remove unused NO_OP_CHIP_ERASE flag
      mtd: spi-nor: spansion: Remove s25fs256s0
      mtd: spi-nor: spansion: Assign .fixups to s25fs256s1
      mtd: spi-nor: sfdp: Increase SFDP data size limit to 16 KiB

Triet Hoang (1):
      mtd: rawnand: stm32_fmc2: Convert to DEFINE_SIMPLE_DEV_PM_OPS()

Vladimir Zapolskiy (2):
      mtd: rawnand: lpc32xx_slc: Remove platform data support
      mtd: rawnand: lpc32xx_mlc: Remove platform data support

Weigang He (1):
      mtd: parsers: qcom: fix offset/size overflow on large partitions

Wentao Liang (5):
      mtd: rawnand: atmel: Fix MCK clock leak in atmel_nand_controller_init()
      mtd: amd76xrom: Fix PCI device reference leak in amd76xrom_init_one()
      mtd: maps: l440gx: Fix double put of the ISA bridge in init_l440gx()
      mtd: maps: l440gx: Fix double put of the PM device in init_l440gx()
      mtd: mtdsuper: Fix MTD device reference leak in mtd_get_sb()

bui duc phuc (1):
      mtd: rawnand: brcmnand: Propagate errors from optional IRQ lookup

 .../bindings/mtd/arasan,nand-controller.yaml       |    3 +
 Documentation/devicetree/bindings/mtd/ibm,ndfc.txt |   39 -
 .../devicetree/bindings/mtd/ibm,ndfc.yaml          |  128 +++
 Documentation/driver-api/mtd/spi-nor.rst           |    2 +-
 drivers/mtd/chips/cfi_cmdset_0001.c                |    5 +-
 drivers/mtd/chips/cfi_cmdset_0002.c                |   15 +
 drivers/mtd/devices/docg3.c                        |   20 +-
 drivers/mtd/devices/powernv_flash.c                |    2 +-
 drivers/mtd/hyperbus/hbmc-am654.c                  |    7 +-
 drivers/mtd/maps/Kconfig                           |   17 +
 drivers/mtd/maps/Makefile                          |    1 +
 drivers/mtd/maps/amd76xrom.c                       |    2 +
 drivers/mtd/maps/int0800.c                         |  115 +++
 drivers/mtd/maps/l440gx.c                          |    2 -
 drivers/mtd/maps/pci.c                             |    2 +-
 drivers/mtd/mtd_blkdevs.c                          |    5 +
 drivers/mtd/mtd_virt_concat.c                      |    2 +
 drivers/mtd/mtdconcat.c                            |    2 +-
 drivers/mtd/mtdcore.c                              |    2 +-
 drivers/mtd/mtdsuper.c                             |    4 +-
 drivers/mtd/nand/onenand/onenand_base.c            |    2 +-
 drivers/mtd/nand/onenand/onenand_omap2.c           |    4 +-
 drivers/mtd/nand/qpic_common.c                     |  131 +++
 drivers/mtd/nand/raw/atmel/nand-controller.c       |    6 +-
 drivers/mtd/nand/raw/brcmnand/brcmnand.c           |    2 +
 drivers/mtd/nand/raw/cadence-nand-controller.c     |    2 +-
 drivers/mtd/nand/raw/fsl_ifc_nand.c                |   49 +-
 drivers/mtd/nand/raw/fsmc_nand.c                   |    4 +-
 drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c         |    2 +-
 drivers/mtd/nand/raw/intel-nand-controller.c       |    8 +-
 drivers/mtd/nand/raw/internals.h                   |    1 +
 drivers/mtd/nand/raw/loongson-nand-controller.c    |    4 +-
 drivers/mtd/nand/raw/lpc32xx_mlc.c                 |   31 +-
 drivers/mtd/nand/raw/lpc32xx_slc.c                 |   31 +-
 drivers/mtd/nand/raw/marvell_nand.c                |    7 +-
 drivers/mtd/nand/raw/mtk_nand.c                    |    2 +-
 drivers/mtd/nand/raw/nand_base.c                   |    2 +-
 drivers/mtd/nand/raw/nand_esmt.c                   |   34 +
 drivers/mtd/nand/raw/nand_ids.c                    |    2 +-
 drivers/mtd/nand/raw/nand_legacy.c                 |    4 +-
 drivers/mtd/nand/raw/ndfc.c                        |   28 +-
 .../mtd/nand/raw/nuvoton-ma35d1-nand-controller.c  |    1 -
 drivers/mtd/nand/raw/omap2.c                       |   14 +-
 drivers/mtd/nand/raw/pl35x-nand-controller.c       |    1 +
 drivers/mtd/nand/raw/qcom_nandc.c                  |  194 +---
 drivers/mtd/nand/raw/sh_flctl.c                    |    8 +-
 drivers/mtd/nand/raw/stm32_fmc2_nand.c             |    8 +-
 drivers/mtd/nand/raw/sunxi_nand.c                  |   37 +-
 drivers/mtd/nand/spi/Makefile                      |    2 +-
 drivers/mtd/nand/spi/core.c                        |    1 +
 drivers/mtd/nand/spi/heyangtek.c                   |   10 +-
 drivers/mtd/nand/spi/issi.c                        |  187 ++++
 drivers/mtd/nand/spi/winbond.c                     |   87 +-
 drivers/mtd/parsers/qcomsmempart.c                 |    4 +-
 drivers/mtd/spi-nor/atmel.c                        |   75 +-
 drivers/mtd/spi-nor/core.c                         | 1035 ++++++++------------
 drivers/mtd/spi-nor/core.h                         |  144 +--
 drivers/mtd/spi-nor/debugfs.c                      |   31 +-
 drivers/mtd/spi-nor/everspin.c                     |    7 +-
 drivers/mtd/spi-nor/gigadevice.c                   |   15 +-
 drivers/mtd/spi-nor/issi.c                         |   29 +-
 drivers/mtd/spi-nor/macronix.c                     |   73 +-
 drivers/mtd/spi-nor/micron-st.c                    |   70 +-
 drivers/mtd/spi-nor/otp.c                          |   18 +-
 drivers/mtd/spi-nor/sfdp.c                         |  284 ++++--
 drivers/mtd/spi-nor/sfdp.h                         |   23 +-
 drivers/mtd/spi-nor/spansion.c                     |  109 ++-
 drivers/mtd/spi-nor/sst.c                          |   16 +-
 drivers/mtd/spi-nor/swp.c                          |  133 +--
 drivers/mtd/spi-nor/sysfs.c                        |    4 +-
 drivers/mtd/spi-nor/winbond.c                      |  320 ++++--
 drivers/mtd/spi-nor/xmc.c                          |    1 +
 include/linux/mtd/bbm.h                            |    2 +-
 include/linux/mtd/lpc32xx_mlc.h                    |   17 -
 include/linux/mtd/lpc32xx_slc.h                    |   17 -
 include/linux/mtd/nand-qpic-common.h               |   18 +-
 include/linux/mtd/rawnand.h                        |    2 +-
 include/linux/mtd/sh_flctl.h                       |    4 +-
 include/linux/mtd/spi-nor.h                        |   10 +-
 include/linux/mtd/spinand.h                        |    3 +-
 80 files changed, 2240 insertions(+), 1505 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/mtd/ibm,ndfc.txt
 create mode 100644 Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml
 create mode 100644 drivers/mtd/maps/int0800.c
 create mode 100644 drivers/mtd/nand/spi/issi.c
 delete mode 100644 include/linux/mtd/lpc32xx_mlc.h
 delete mode 100644 include/linux/mtd/lpc32xx_slc.h



More information about the linux-mtd mailing list