Unverified Commit 1e5e10df authored by Cosmin Tanislav's avatar Cosmin Tanislav Committed by Mark Brown
Browse files

spi: rzv2h-rspi: split out PIO transfer



In preparation for implementing DMA support, split out the PIO transfer
code into its own function.

Signed-off-by: default avatarCosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com>
Link: https://patch.msgid.link/20251201134229.600817-10-cosmin-gabriel.tanislav.xa@renesas.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent d49eea07
Loading
Loading
Loading
Loading
+20 −7
Original line number Diff line number Diff line
@@ -219,17 +219,14 @@ static int rzv2h_rspi_receive(struct rzv2h_rspi_priv *rspi, void *rxbuf,
	return 0;
}

static int rzv2h_rspi_transfer_one(struct spi_controller *controller,
static int rzv2h_rspi_transfer_pio(struct rzv2h_rspi_priv *rspi,
				   struct spi_device *spi,
				   struct spi_transfer *transfer)
				   struct spi_transfer *transfer,
				   unsigned int words_to_transfer)
{
	struct rzv2h_rspi_priv *rspi = spi_controller_get_devdata(controller);
	unsigned int words_to_transfer, i;
	unsigned int i;
	int ret = 0;

	transfer->effective_speed_hz = rspi->freq;
	words_to_transfer = transfer->len / rspi->bytes_per_word;

	for (i = 0; i < words_to_transfer; i++) {
		rzv2h_rspi_clear_all_irqs(rspi);

@@ -240,6 +237,22 @@ static int rzv2h_rspi_transfer_one(struct spi_controller *controller,
			break;
	}

	return ret;
}

static int rzv2h_rspi_transfer_one(struct spi_controller *controller,
				   struct spi_device *spi,
				   struct spi_transfer *transfer)
{
	struct rzv2h_rspi_priv *rspi = spi_controller_get_devdata(controller);
	unsigned int words_to_transfer;
	int ret;

	transfer->effective_speed_hz = rspi->freq;
	words_to_transfer = transfer->len / rspi->bytes_per_word;

	ret = rzv2h_rspi_transfer_pio(rspi, spi, transfer, words_to_transfer);

	rzv2h_rspi_clear_all_irqs(rspi);

	return ret;