[PATCH v2 0/2] spi: sun6i: Fix chip select handling around autosuspend

From: Kevin Mehall

Date: Thu Apr 23 2026 - 13:43:55 EST


Move the initialization of the SUN6I_TFR_CTL_REG bits out of
sun6i_spi_transfer_one() into earlier callbacks to fix two bugs:

- With a native chip select, the setup_delay is not correctly applied to
the first transfer after autosuspend.
- With a GPIO chip select, the CS is asserted before SCK is driven to the
correct initial level per the SPI mode. When the mode is set, it can
cause an extra SCK transition with CS low and corrupt the transfer.

Changes since the previous single patch:
- Move the line that sets `SUN6I_TFR_CTL_CS_MANUAL` into
`sun6i_spi_set_cs()` rather than into `sun6i_spi_prepare_message()`.
This change is now a separate commit.

Kevin Mehall (2):
spi: sun6i: Honor CS setup delay on the first transfer with native CS
spi: sun6i: Set SPI mode in prepare_message

drivers/spi/spi-sun6i.c | 74 +++++++++++++++++++++++++----------------
1 file changed, 45 insertions(+), 29 deletions(-)


base-commit: 028ef9c96e96197026887c0f092424679298aae8
--
2.53.0