Lines Matching refs:xfer

234 			       struct spi_transfer *xfer)  in img_spfi_start_pio()  argument
238 const void *tx_buf = xfer->tx_buf; in img_spfi_start_pio()
239 void *rx_buf = xfer->rx_buf; in img_spfi_start_pio()
244 tx_bytes = xfer->len; in img_spfi_start_pio()
246 rx_bytes = xfer->len; in img_spfi_start_pio()
251 msecs_to_jiffies(xfer->len * 8 * 1000 / xfer->speed_hz + 100); in img_spfi_start_pio()
316 struct spi_transfer *xfer) in img_spfi_start_dma() argument
325 if (xfer->rx_buf) { in img_spfi_start_dma()
327 if (xfer->len % 4 == 0) { in img_spfi_start_dma()
338 rxdesc = dmaengine_prep_slave_sg(spfi->rx_ch, xfer->rx_sg.sgl, in img_spfi_start_dma()
339 xfer->rx_sg.nents, in img_spfi_start_dma()
349 if (xfer->tx_buf) { in img_spfi_start_dma()
351 if (xfer->len % 4 == 0) { in img_spfi_start_dma()
362 txdesc = dmaengine_prep_slave_sg(spfi->tx_ch, xfer->tx_sg.sgl, in img_spfi_start_dma()
363 xfer->tx_sg.nents, in img_spfi_start_dma()
373 if (xfer->rx_buf) { in img_spfi_start_dma()
381 if (xfer->tx_buf) { in img_spfi_start_dma()
494 struct spi_transfer *xfer) in img_spfi_config() argument
503 div = DIV_ROUND_UP(clk_get_rate(spfi->spfi_clk), xfer->speed_hz); in img_spfi_config()
512 spfi_writel(spfi, xfer->len << SPFI_TRANSACTION_TSIZE_SHIFT, in img_spfi_config()
517 if (xfer->tx_buf) in img_spfi_config()
519 if (xfer->rx_buf) in img_spfi_config()
522 if (xfer->tx_nbits == SPI_NBITS_DUAL && in img_spfi_config()
523 xfer->rx_nbits == SPI_NBITS_DUAL) in img_spfi_config()
525 else if (xfer->tx_nbits == SPI_NBITS_QUAD && in img_spfi_config()
526 xfer->rx_nbits == SPI_NBITS_QUAD) in img_spfi_config()
534 struct spi_transfer *xfer) in img_spfi_transfer_one() argument
539 if (xfer->len > SPFI_TRANSACTION_TSIZE_MASK) { in img_spfi_transfer_one()
542 xfer->len, SPFI_TRANSACTION_TSIZE_MASK); in img_spfi_transfer_one()
546 img_spfi_config(master, spi, xfer); in img_spfi_transfer_one()
547 if (master->can_dma && master->can_dma(master, spi, xfer)) in img_spfi_transfer_one()
548 ret = img_spfi_start_dma(master, spi, xfer); in img_spfi_transfer_one()
550 ret = img_spfi_start_pio(master, spi, xfer); in img_spfi_transfer_one()
556 struct spi_transfer *xfer) in img_spfi_can_dma() argument
558 if (xfer->len > SPFI_32BIT_FIFO_SIZE) in img_spfi_can_dma()