[PATCH v2 0/7] spi: Add support for panic mem writes

Paul Cercueil paul.cercueil at bootlin.com
Tue Oct 13 07:13:43 PDT 2026


Hi,

Here is the v2 of my patchset that updates the MTD spi-nor code as well
as the spi-mem code, to add support for panic mem writes to a memory
partition configured as pstore.

Changelog:

 - Old patch [4/5] ("spi: cadence-xspi: Don't use infinite timeout in
   register poll") was dropped. The V2's [6/7] updates that code so
   there was little point in keeping the patch, especially since it
   was fixing a never-taken code path.

 - [1/7]: 
        - Don't call spi_mem_access_start/end on panic. We don't need to
          flush the SPI queue at that point, and we don't need to lock the
          mutexes.
        - Check that the SPI controller's PM status is active, and bail out
          otherwise.

 - [2/7]: New patch.
          Updates the spi-nor code to use the iopoll macros, to make it
	  easier to convert it to atomic-context polling later.

 - [3/7]: (was v1's [2/5])
        - Update spi_nor_wait_till_ready_with_timeout() to use
          poll_timeout_us_atomic() on panic
        - Alloc temp buffer with GFP_ATOMIC in spi_nor_octal_dtr_write()
          on panic
        - Bail out if nor->rww.ongoing_pe is set in spi_nor_panic_write()

 - [4/7]: New patch.
          Address an issue found by Sashiko, where we poll for a bit in
          the IRQ status register but never clear the bit back to 0.

 - [5/7]: (was v1's [3/5])
        - Make sure we only enable interrupts if not using polling mode

 - [6/7]:
        - Don't enable interrupts if doing a panic write
        - Use a new cdns_readl_poll() macro that will resolve to calling
          readl_relaxed_poll_timeout_atomic() when doing a panic write, or
          readl_relaxed_poll_timeout() otherwise.
        - Drop cdns_xspi->panic_write. We don't actually need to check it
	  in cdns_xspi_is_dll_locked(), because this code is never called
	  in the kernel panic path.

 - [4/7]: New patch.
          Update the dt-bindings to make the IRQ line optional.

Cheers,
-Paul

Tanmay Jagdale (7):
  spi: spi-mem: Add support for panic mem writes
  mtd: spi-nor: Wait for NOR ready with poll_timeout_us()
  mtd: spi-nor: Add support for panic writes
  spi: cadence-xspi: Clear "SDMA ready" IRQ flag after polling
  spi: cadence-xspi: Add irq-less support
  spi: cadence-xspi: Add support for panic writes
  spi: dt-bindings: cadence: Make XSPI's IRQ line optional

 .../devicetree/bindings/spi/cdns,xspi.yaml    |   1 -
 drivers/mtd/spi-nor/core.c                    | 111 +++++++++++++----
 drivers/spi/spi-cadence-xspi.c                | 116 +++++++++++-------
 drivers/spi/spi-mem.c                         |  35 +++++-
 include/linux/spi/spi-mem.h                   |   5 +
 5 files changed, 194 insertions(+), 74 deletions(-)

-- 
2.47.3




More information about the linux-mtd mailing list