]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
spi: axi-spi-engine: don't emit XFER_BITS for empty xfer
authorDavid Lechner <dlechner@baylibre.com>
Tue, 23 Jul 2024 18:36:47 +0000 (13:36 -0500)
committerMark Brown <broonie@kernel.org>
Mon, 29 Jul 2024 00:23:21 +0000 (01:23 +0100)
This adds a check on xfer->len to avoid emitting an XFER_BITS
instruction for empty transfers in the AXI SPI Engine driver. This
avoids unnecessary delays caused by executing an instruction that has
no effect on the actual SPI transfer.

Signed-off-by: David Lechner <dlechner@baylibre.com>
Reviewed-by: Nuno Sa <nuno.sa@analog.com>
Link: https://patch.msgid.link/20240723-spi-axi-spi-engine-opt-bpw-v1-1-2625ba4c4387@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-axi-spi-engine.c

index 447e5a962dee86ce2ebb774e5412b41659ce1afa..cb3fdcbca2be8f439517bb41319801d7bbb5e464 100644 (file)
@@ -258,7 +258,7 @@ static void spi_engine_compile_message(struct spi_message *msg, bool dry,
                                        clk_div - 1));
                }
 
-               if (bits_per_word != xfer->bits_per_word) {
+               if (bits_per_word != xfer->bits_per_word && xfer->len) {
                        bits_per_word = xfer->bits_per_word;
                        spi_engine_program_add_cmd(p, dry,
                                SPI_ENGINE_CMD_WRITE(SPI_ENGINE_CMD_REG_XFER_BITS,