[PATCH v2 00/35] mtd: spi-nor: Handle ID collisions and clean params init

Tudor Ambarus
2021-07-27T04:53:44Z

Handle flash ID collisions. Clean spi_nor_scan() and the flash
parameters initialization. Add guideliness on how to submit a new
flash proposal. An overview of the patch set can be seen in the
documentation patch, the last in the series.
Documentation/driver-api/mtd/spi-nor.rst is obsolete and must be
updated, but the series is getting big, and I though submitting
what I have to speed the review process. Will handle the documentation
afterwards.

Tested with sst26vf064b, w25q256jvm, is25lp256, s25fl256s0, gd25q256,
n25q256a and mx25l25635e.

Changes in v2: address Pratyush's comments on initial patch set.

Tudor Ambarus (35):
mtd: spi-nor: core: Introduce SPI_NOR_PARSE_SFDP
mtd: spi-nor: core: Report correct name in case of ID collisions
mtd: spi-nor: macronix: Handle ID collision b/w MX25L3233F and
MX25L3205D
mtd: spi-nor: macronix: Handle ID collision b/w MX25L12805D and
MX25L12835F
mtd: spi-nor: Introduce Manufacturer ID collisions driver
mtd: spi-nor: manuf-id-collisions: Add support for xt25f128b
mtd: spi-nor: manuf-id-collisions: Add support for xm25qh64c
mtd: spi-nor: core: Introduce the ate_init() hook
mtd: spi-nor: atmel: Use flash late_init() for locking
mtd: spi-nor: sst: Use flash late_init() for locking
mtd: spi-nor: winbond: Use manufacturer late_init() for OTP ops
mtd: spi-nor: xilinx: Use manufacturer late_init() to set setup method
mtd: spi-nor: sst: Use manufacturer late_init() to set _write()
mtd: spi-nor: spansion: Use manufacturer late_init()
mtd: spi-nor: core: Call spi_nor_post_sfdp_fixups() only when SFDP is
defined
mtd: spi-nor: core: Mark default_init() as deprecated
mtd: spi-nor: Introduce spi_nor_nonsfdp_flags_init()
mtd: spi-nor: Get rid of SPI_NOR_4B_OPCODES flag
mtd: spi-nor: Get rid of SPI_NOR_IO_MODE_EN_VOLATILE flag
mtd: spi-nor: core: Use container_of to get the pointer to struct
spi_nor
mtd: spi-nor: Introduce spi_nor_set_mtd_info()
mtd: spi-nor: core: Use common naming scheme for setting mtd_info
fields
mtd: spi-nor: Get rid of nor->page_size
mtd: spi-nor: core: Fix spi_nor_flash_parameter otp description
mtd: spi-nor: core: Move spi_nor_set_addr_width() in spi_nor_setup()
mtd: spi-nor: core: Introduce spi_nor_init_default_params()
mtd: spi-nor: core: Init flash params based on SFDP first for new
flash additions
mtd: spi-nor: sst: sst26vf064b: Use SPI_NOR_PARSE_SFDP
mtd: spi-nor: winbond: w25q256jvm: Use SPI_NOR_PARSE_SFDP
mtd: spi-nor: issi: is25lp256: Use SPI_NOR_PARSE_SFDP
mtd: spi-nor: spansion: s25fl256s0: Skip SFDP parsing
mtd: spi-nor: gigadevice: gd25q256: Use SPI_NOR_PARSE_SFDP
mtd: spi-nor: micron-st: n25q256a: Use SPI_NOR_PARSE_SFDP
mtd: spi-nor: macronix: mx25l25635e: Use SPI_NOR_PARSE_SFDP
docs: mtd: spi-nor: Add details about how to propose a new flash
addition

Documentation/driver-api/mtd/spi-nor.rst | 65 +++
drivers/mtd/spi-nor/Makefile | 1 +
drivers/mtd/spi-nor/atmel.c | 30 +-
drivers/mtd/spi-nor/core.c | 482 ++++++++++++----------
drivers/mtd/spi-nor/core.h | 60 +--
drivers/mtd/spi-nor/gigadevice.c | 6 +-
drivers/mtd/spi-nor/issi.c | 12 +-
drivers/mtd/spi-nor/macronix.c | 67 ++-
drivers/mtd/spi-nor/manuf-id-collisions.c | 29 ++
drivers/mtd/spi-nor/micron-st.c | 34 +-
drivers/mtd/spi-nor/otp.c | 2 +-
drivers/mtd/spi-nor/spansion.c | 24 +-
drivers/mtd/spi-nor/sst.c | 19 +-
drivers/mtd/spi-nor/swp.c | 2 +-
drivers/mtd/spi-nor/sysfs.c | 2 +-
drivers/mtd/spi-nor/winbond.c | 11 +-
drivers/mtd/spi-nor/xilinx.c | 25 +-
include/linux/mtd/spi-nor.h | 4 +-
18 files changed, 539 insertions(+), 336 deletions(-)
create mode 100644 drivers/mtd/spi-nor/manuf-id-collisions.c

--
2.25.1