Lines Matching full:transfer
141 * @cur_xferlen: current transfer length in bytes
142 * @cur_usedma: boolean to know if dma is used in current transfer
147 * @dma_tx: dma channel for TX transfer
148 * @dma_rx: dma channel for RX transfer
391 * SPI data transfer is enabled but spi_ker_ck is idle.
462 * stm32_spi_can_dma - Determine if the transfer is eligible for DMA use
464 * If the current transfer size is greater than fifo size, use DMA.
468 struct spi_transfer *transfer) in stm32_spi_can_dma() argument
473 (transfer->len > spi->fifo_size) ? "true" : "false"); in stm32_spi_can_dma()
475 return (transfer->len > spi->fifo_size); in stm32_spi_can_dma()
520 * that something went wrong, so stop the current transfer in stm32_spi_irq()
527 dev_warn(spi->dev, "Mode fault: transfer aborted\n"); in stm32_spi_irq()
537 * something went wrong, so stop the current transfer in stm32_spi_irq()
593 * stm32_spi_prepare_msg - set up the controller to transfer a single message
646 * DMA callback is called when the transfer is complete or when an error
647 * occurs. If the transfer is complete, EOT flag is raised.
669 * transfer bits_per_word.
711 * stm32_spi_transfer_one_irq - transfer a single spi_transfer using
714 * It must returns 0 if the transfer is finished or 1 if the transfer is still
730 /* Enable the interrupts relative to the end of transfer */ in stm32_spi_transfer_one_irq()
737 /* Be sure to have data in fifo before starting data transfer */ in stm32_spi_transfer_one_irq()
751 * stm32_spi_transfer_one_dma - transfer a single spi_transfer using DMA
753 * It must returns 0 if the transfer is finished or 1 if the transfer is still
826 /* Enable the interrupts relative to the end of transfer */ in stm32_spi_transfer_one_dma()
847 dev_info(spi->dev, "DMA issue: fall back to irq transfer\n"); in stm32_spi_transfer_one_dma()
853 * stm32_spi_transfer_one_setup - common setup to transfer a single
859 struct spi_transfer *transfer) in stm32_spi_transfer_one_setup() argument
868 if (spi->cur_bpw != transfer->bits_per_word) { in stm32_spi_transfer_one_setup()
871 spi->cur_bpw = transfer->bits_per_word; in stm32_spi_transfer_one_setup()
884 if (spi->cur_speed != transfer->speed_hz) { in stm32_spi_transfer_one_setup()
888 mbr = stm32_spi_prepare_mbr(spi, transfer->speed_hz); in stm32_spi_transfer_one_setup()
894 transfer->speed_hz = spi->cur_speed; in stm32_spi_transfer_one_setup()
911 * transfer. in stm32_spi_transfer_one_setup()
914 if (!transfer->tx_buf) in stm32_spi_transfer_one_setup()
916 else if (!transfer->rx_buf) in stm32_spi_transfer_one_setup()
919 if (!transfer->tx_buf) in stm32_spi_transfer_one_setup()
921 else if (!transfer->rx_buf) in stm32_spi_transfer_one_setup()
932 if ((transfer->len > 1) && (spi->cur_midi > 0)) { in stm32_spi_transfer_one_setup()
949 nb_words = transfer->len; in stm32_spi_transfer_one_setup()
951 nb_words = DIV_ROUND_UP(transfer->len * 8, 16); in stm32_spi_transfer_one_setup()
953 nb_words = DIV_ROUND_UP(transfer->len * 8, 32); in stm32_spi_transfer_one_setup()
963 spi->cur_xferlen = transfer->len; in stm32_spi_transfer_one_setup()
965 dev_dbg(spi->dev, "transfer communication mode set to %d\n", in stm32_spi_transfer_one_setup()
971 dev_dbg(spi->dev, "transfer of %d bytes (%d data frames)\n", in stm32_spi_transfer_one_setup()
983 * stm32_spi_transfer_one - transfer a single spi_transfer
985 * It must return 0 if the transfer is finished or 1 if the transfer is still
990 struct spi_transfer *transfer) in stm32_spi_transfer_one() argument
995 spi->tx_buf = transfer->tx_buf; in stm32_spi_transfer_one()
996 spi->rx_buf = transfer->rx_buf; in stm32_spi_transfer_one()
997 spi->tx_len = spi->tx_buf ? transfer->len : 0; in stm32_spi_transfer_one()
998 spi->rx_len = spi->rx_buf ? transfer->len : 0; in stm32_spi_transfer_one()
1001 stm32_spi_can_dma(master, spi_dev, transfer)); in stm32_spi_transfer_one()
1003 ret = stm32_spi_transfer_one_setup(spi, spi_dev, transfer); in stm32_spi_transfer_one()
1005 dev_err(spi->dev, "SPI transfer setup failed\n"); in stm32_spi_transfer_one()
1010 return stm32_spi_transfer_one_dma(spi, transfer); in stm32_spi_transfer_one()
1021 * complete the transfer from an hardware point of view.