[PATCH v3 0/2] spi: axi-spi-engine: fix stale SYNC IRQ pending
From: Jonathan Santos
Date: Wed Oct 07 2026 - 08:52:13 EST
Both spi_engine_setup() and spi_engine_trigger_enable() send a SYNC(1)
command and poll SYNC_ID, but never clear INT_PENDING[SYNC] afterward.
This leaves a stale pending bit that fires spuriously when INT_SYNC is
enabled later by some driver, causing premature transfer completion at
low SPI clock frequencies (more likely). Fix both functions by clearing
the pending bit after polling.
v3 summary:
* Added a dummy read after the clear command to flush the posted writes
before dropping the lock.
* Link to v2: https://lore.kernel.org/linux-spi/cover.1790731588.git.Jonathan.Santos@xxxxxxxxxx/T/#t
v2 summary:
* Replaced "Link" tag for "Closes" tag.
* Included "Fixes" tag.
* Added new patch applying similar fix for the spi_engine_trigger_enable(),
as pointed out by David.
* While at it, replaced plain "1000" by "1 * USEC_PER_MSEC" for better
clarity.
* Link to v1: https://lore.kernel.org/linux-spi/04d51e99b8cddce51113db933d806e83848f04f5.1788313558.git.Jonathan.Santos@xxxxxxxxxx/T/#t
Jonathan Santos (2):
spi: axi-spi-engine: fix stale SYNC IRQ pending
spi: axi-spi-engine: fix stale SYNC IRQ pending in trigger_enable
drivers/spi/spi-axi-spi-engine.c | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
base-commit: 04434a1d0f311d76b1f15fa987918b471a0b8c6a
--
2.34.1