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

From: Paul Cercueil

Date: Tue Oct 13 2026 - 12:45:36 EST


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