spi: rockchip-sfc: Embedded DMA only support 4B aligned address
authorJon Lin <jon.lin@rock-chips.com>
Mon, 18 Nov 2024 14:56:46 +0000 (22:56 +0800)
committerMark Brown <broonie@kernel.org>
Tue, 19 Nov 2024 11:38:43 +0000 (11:38 +0000)
Controller limitations.

Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
Link: https://patch.msgid.link/20241118145646.2609039-1-jon.lin@rock-chips.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-rockchip-sfc.c

index 316e3db..69d0f21 100644 (file)
@@ -503,7 +503,7 @@ static int rockchip_sfc_exec_mem_op(struct spi_mem *mem, const struct spi_mem_op
        rockchip_sfc_adjust_op_work((struct spi_mem_op *)op);
        rockchip_sfc_xfer_setup(sfc, mem, op, len);
        if (len) {
-               if (likely(sfc->use_dma) && len >= SFC_DMA_TRANS_THRETHOLD) {
+               if (likely(sfc->use_dma) && len >= SFC_DMA_TRANS_THRETHOLD && !(len & 0x3)) {
                        init_completion(&sfc->cp);
                        rockchip_sfc_irq_unmask(sfc, SFC_IMR_DMA);
                        ret = rockchip_sfc_xfer_data_dma(sfc, op, len);