]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
spi-geni-qcom: use xfer->bits_per_word for can_dma()
authorJonathan Marek <jonathan@marek.ca>
Thu, 20 Nov 2025 21:12:00 +0000 (16:12 -0500)
committerMark Brown <broonie@kernel.org>
Sun, 14 Dec 2025 10:39:23 +0000 (19:39 +0900)
mas->cur_bits_per_word may not reflect the value of xfer->bits_per_word
when can_dma() is called. Use the right value instead.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Link: https://patch.msgid.link/20251120211204.24078-3-jonathan@marek.ca
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-geni-qcom.c

index c33d79d9afaf81dd90ecfbde1ea5cd07376add4e..575b112d4acb1df1f6b3f5339675a55204439a18 100644 (file)
@@ -499,10 +499,10 @@ static u32 get_xfer_len_in_words(struct spi_transfer *xfer,
 {
        u32 len;
 
-       if (!(mas->cur_bits_per_word % MIN_WORD_LEN))
-               len = xfer->len * BITS_PER_BYTE / mas->cur_bits_per_word;
+       if (!(xfer->bits_per_word % MIN_WORD_LEN))
+               len = xfer->len * BITS_PER_BYTE / xfer->bits_per_word;
        else
-               len = xfer->len / (mas->cur_bits_per_word / BITS_PER_BYTE + 1);
+               len = xfer->len / (xfer->bits_per_word / BITS_PER_BYTE + 1);
        len &= TRANS_LEN_MSK;
 
        return len;
@@ -522,7 +522,7 @@ static bool geni_can_dma(struct spi_controller *ctlr,
                return true;
 
        len = get_xfer_len_in_words(xfer, mas);
-       fifo_size = mas->tx_fifo_depth * mas->fifo_width_bits / mas->cur_bits_per_word;
+       fifo_size = mas->tx_fifo_depth * mas->fifo_width_bits / xfer->bits_per_word;
 
        if (len > fifo_size)
                return true;