Lines Matching full:transfer

264  * @transfer_one_dma_start: routine to start transfer a single spi_transfer
315 * @t_size_max: maximum number of data of one transfer
323 * @cur_xferlen: current transfer length in bytes
324 * @cur_usedma: boolean to know if dma is used in current transfer
329 * @dma_tx: dma channel for TX transfer
330 * @dma_rx: dma channel for RX transfer
334 * @sram_rx_buf_size: size of SRAM buffer for RX transfer
335 * @sram_rx_buf: SRAM buffer for RX transfer
336 * @sram_dma_rx_buf: SRAM buffer physical address for RX transfer
337 * @mdma_rx: MDMA channel for RX transfer
397 /* SPI data transfer is enabled but spi_ker_ck is idle.
417 /* SPI data transfer is enabled but spi_ker_ck is idle.
920 * stm32_spi_can_dma - Determine if the transfer is eligible for DMA use
923 * @transfer: pointer to spi transfer
925 * If driver has fifo and the current transfer size is greater than fifo size,
926 * use DMA. Otherwise use DMA for transfer longer than defined DMA min bytes.
930 struct spi_transfer *transfer) in stm32_spi_can_dma() argument
941 (transfer->len > dma_size) ? "true" : "false"); in stm32_spi_can_dma()
943 return (transfer->len > dma_size); in stm32_spi_can_dma()
997 * so stop the current transfer. Transfer can wait for next in stm32fx_spi_irq_event()
1100 * that something went wrong, so stop the current transfer in stm32h7_spi_irq_thread()
1107 dev_warn(spi->dev, "Mode fault: transfer aborted\n"); in stm32h7_spi_irq_thread()
1117 dev_dbg(spi->dev, "End of transfer\n"); in stm32h7_spi_irq_thread()
1168 * stm32_spi_prepare_msg - set up the controller to transfer a single message
1236 * DMA callback is called when the transfer is complete for DMA TX channel.
1252 * DMA callback is called when the transfer is complete for DMA RX channel.
1264 * transfer bits_per_word.
1268 * @dir: direction of the dma transfer
1316 * stm32fx_spi_transfer_one_irq - transfer a single spi_transfer using
1320 * It must returns 0 if the transfer is finished or 1 if the transfer is still
1349 /* starting data transfer when buffer is loaded */ in stm32fx_spi_transfer_one_irq()
1359 * stm32h7_spi_transfer_one_irq - transfer a single spi_transfer using
1363 * It must returns 0 if the transfer is finished or 1 if the transfer is still
1379 /* Enable the interrupts relative to the end of transfer */ in stm32h7_spi_transfer_one_irq()
1387 /* Be sure to have data in fifo before starting data transfer */ in stm32h7_spi_transfer_one_irq()
1403 * transfer using DMA
1408 /* In DMA mode end of transfer is handled by DMA TX or RX callback. */ in stm32fx_spi_transfer_one_dma_start()
1424 * transfer using DMA
1440 * transfer using DMA
1464 * @xfer: pointer to the spi transfer
1502 /* Prepare DMA slave_sg DBM transfer DEV_TO_MEM (RX>MEM=SRAM) */ in stm32_spi_prepare_rx_dma_mdma_chaining()
1537 /* Prepare MDMA slave_sg transfer MEM_TO_MEM (SRAM>DDR) */ in stm32_spi_prepare_rx_dma_mdma_chaining()
1577 * stm32_spi_transfer_one_dma - transfer a single spi_transfer using DMA
1581 * It must returns 0 if the transfer is finished or 1 if the transfer is still
1698 dev_info(spi->dev, "DMA issue: fall back to irq transfer\n"); in stm32_spi_transfer_one_dma()
1788 * stm32_spi_communication_type - return transfer communication type
1790 * @transfer: pointer to spi transfer
1793 struct spi_transfer *transfer) in stm32_spi_communication_type() argument
1802 * transfer. in stm32_spi_communication_type()
1804 if (!transfer->tx_buf) in stm32_spi_communication_type()
1809 if (!transfer->tx_buf) in stm32_spi_communication_type()
1811 else if (!transfer->rx_buf) in stm32_spi_communication_type()
1885 * @xfer: pointer to spi transfer
1926 * stm32h7_spi_number_of_data - configure number of data at current transfer
1928 * @nb_words: transfer length (in words)
1943 * stm32_spi_transfer_one_setup - common setup to transfer a single
1948 * @transfer: pointer to spi transfer
1952 struct spi_transfer *transfer) in stm32_spi_transfer_one_setup() argument
1961 spi->cur_xferlen = transfer->len; in stm32_spi_transfer_one_setup()
1963 spi->cur_bpw = transfer->bits_per_word; in stm32_spi_transfer_one_setup()
1975 mbr = stm32_spi_prepare_mbr(spi, transfer->speed_hz, in stm32_spi_transfer_one_setup()
1983 transfer->speed_hz = spi->cur_speed; in stm32_spi_transfer_one_setup()
1987 comm_type = stm32_spi_communication_type(spi_dev, transfer); in stm32_spi_transfer_one_setup()
1995 spi->cfg->set_data_idleness(spi, transfer); in stm32_spi_transfer_one_setup()
1998 nb_words = transfer->len; in stm32_spi_transfer_one_setup()
2000 nb_words = DIV_ROUND_UP(transfer->len * 8, 16); in stm32_spi_transfer_one_setup()
2002 nb_words = DIV_ROUND_UP(transfer->len * 8, 32); in stm32_spi_transfer_one_setup()
2010 dev_dbg(spi->dev, "transfer communication mode set to %d\n", in stm32_spi_transfer_one_setup()
2017 dev_dbg(spi->dev, "transfer of %d bytes (%d data frames)\n", in stm32_spi_transfer_one_setup()
2029 * stm32_spi_transfer_one - transfer a single spi_transfer
2032 * @transfer: pointer to spi transfer
2034 * It must return 0 if the transfer is finished or 1 if the transfer is still
2039 struct spi_transfer *transfer) in stm32_spi_transfer_one() argument
2044 spi->tx_buf = transfer->tx_buf; in stm32_spi_transfer_one()
2045 spi->rx_buf = transfer->rx_buf; in stm32_spi_transfer_one()
2046 spi->tx_len = spi->tx_buf ? transfer->len : 0; in stm32_spi_transfer_one()
2047 spi->rx_len = spi->rx_buf ? transfer->len : 0; in stm32_spi_transfer_one()
2050 ctrl->can_dma(ctrl, spi_dev, transfer)); in stm32_spi_transfer_one()
2052 ret = stm32_spi_transfer_one_setup(spi, spi_dev, transfer); in stm32_spi_transfer_one()
2054 dev_err(spi->dev, "SPI transfer setup failed\n"); in stm32_spi_transfer_one()
2059 return stm32_spi_transfer_one_dma(spi, transfer); in stm32_spi_transfer_one()