Skip to content

Commit 1e5e10d

Browse files
Demon000broonie
authored andcommitted
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: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com> Link: https://patch.msgid.link/20251201134229.600817-10-cosmin-gabriel.tanislav.xa@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent d49eea0 commit 1e5e10d

1 file changed

Lines changed: 20 additions & 7 deletions

File tree

drivers/spi/spi-rzv2h-rspi.c

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -219,17 +219,14 @@ static int rzv2h_rspi_receive(struct rzv2h_rspi_priv *rspi, void *rxbuf,
219219
return 0;
220220
}
221221

222-
static int rzv2h_rspi_transfer_one(struct spi_controller *controller,
222+
static int rzv2h_rspi_transfer_pio(struct rzv2h_rspi_priv *rspi,
223223
struct spi_device *spi,
224-
struct spi_transfer *transfer)
224+
struct spi_transfer *transfer,
225+
unsigned int words_to_transfer)
225226
{
226-
struct rzv2h_rspi_priv *rspi = spi_controller_get_devdata(controller);
227-
unsigned int words_to_transfer, i;
227+
unsigned int i;
228228
int ret = 0;
229229

230-
transfer->effective_speed_hz = rspi->freq;
231-
words_to_transfer = transfer->len / rspi->bytes_per_word;
232-
233230
for (i = 0; i < words_to_transfer; i++) {
234231
rzv2h_rspi_clear_all_irqs(rspi);
235232

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

240+
return ret;
241+
}
242+
243+
static int rzv2h_rspi_transfer_one(struct spi_controller *controller,
244+
struct spi_device *spi,
245+
struct spi_transfer *transfer)
246+
{
247+
struct rzv2h_rspi_priv *rspi = spi_controller_get_devdata(controller);
248+
unsigned int words_to_transfer;
249+
int ret;
250+
251+
transfer->effective_speed_hz = rspi->freq;
252+
words_to_transfer = transfer->len / rspi->bytes_per_word;
253+
254+
ret = rzv2h_rspi_transfer_pio(rspi, spi, transfer, words_to_transfer);
255+
243256
rzv2h_rspi_clear_all_irqs(rspi);
244257

245258
return ret;

0 commit comments

Comments
 (0)