[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