Unverified Commit fb2bbe38 authored by Jonathan Marek's avatar Jonathan Marek Committed by Mark Brown
Browse files

spi-geni-qcom: use xfer->bits_per_word for can_dma()



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: default avatarJonathan Marek <jonathan@marek.ca>
Link: https://patch.msgid.link/20251120211204.24078-3-jonathan@marek.ca


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 7ba2e0ed
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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;