Skip to content

Commit a841b24

Browse files
Varadarajan Narayananbroonie
authored andcommitted
spi: qup: refactor spi_qup_prep_sg
Take specific sgl and nent to be prepared. This is in preparation for splitting DMA into multiple transacations, this contains no code changes just refactoring. Signed-off-by: Matthew McClintock <[email protected]> Signed-off-by: Varadarajan Narayanan <[email protected]> Signed-off-by: Mark Brown <[email protected]>
1 parent 5dc47fe commit a841b24

File tree

1 file changed

+10
-13
lines changed

1 file changed

+10
-13
lines changed

drivers/spi/spi-qup.c

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -382,27 +382,20 @@ static void spi_qup_write(struct spi_qup *controller)
382382
} while (remainder);
383383
}
384384

385-
static int spi_qup_prep_sg(struct spi_master *master, struct spi_transfer *xfer,
386-
enum dma_transfer_direction dir,
385+
static int spi_qup_prep_sg(struct spi_master *master, struct scatterlist *sgl,
386+
unsigned int nents, enum dma_transfer_direction dir,
387387
dma_async_tx_callback callback)
388388
{
389389
struct spi_qup *qup = spi_master_get_devdata(master);
390390
unsigned long flags = DMA_PREP_INTERRUPT | DMA_PREP_FENCE;
391391
struct dma_async_tx_descriptor *desc;
392-
struct scatterlist *sgl;
393392
struct dma_chan *chan;
394393
dma_cookie_t cookie;
395-
unsigned int nents;
396394

397-
if (dir == DMA_MEM_TO_DEV) {
395+
if (dir == DMA_MEM_TO_DEV)
398396
chan = master->dma_tx;
399-
nents = xfer->tx_sg.nents;
400-
sgl = xfer->tx_sg.sgl;
401-
} else {
397+
else
402398
chan = master->dma_rx;
403-
nents = xfer->rx_sg.nents;
404-
sgl = xfer->rx_sg.sgl;
405-
}
406399

407400
desc = dmaengine_prep_slave_sg(chan, sgl, nents, dir, flags);
408401
if (IS_ERR_OR_NULL(desc))
@@ -451,15 +444,19 @@ static int spi_qup_do_dma(struct spi_device *spi, struct spi_transfer *xfer,
451444
}
452445

453446
if (xfer->rx_buf) {
454-
ret = spi_qup_prep_sg(master, xfer, DMA_DEV_TO_MEM, rx_done);
447+
ret = spi_qup_prep_sg(master, xfer->rx_sg.sgl,
448+
xfer->rx_sg.nents, DMA_DEV_TO_MEM,
449+
rx_done);
455450
if (ret)
456451
return ret;
457452

458453
dma_async_issue_pending(master->dma_rx);
459454
}
460455

461456
if (xfer->tx_buf) {
462-
ret = spi_qup_prep_sg(master, xfer, DMA_MEM_TO_DEV, tx_done);
457+
ret = spi_qup_prep_sg(master, xfer->tx_sg.sgl,
458+
xfer->tx_sg.nents, DMA_MEM_TO_DEV,
459+
tx_done);
463460
if (ret)
464461
return ret;
465462

0 commit comments

Comments
 (0)