• Home
  • Raw
  • Download

Lines Matching full:transfer

229  * @can_dma: routine to determine if the transfer is eligible for DMA use
230 * @transfer_one_dma_start: routine to start transfer a single spi_transfer
240 * @has_startbit: boolean to know if start bit is used to start transfer
280 * @cur_xferlen: current transfer length in bytes
281 * @cur_usedma: boolean to know if dma is used in current transfer
286 * @dma_tx: dma channel for TX transfer
287 * @dma_rx: dma channel for RX transfer
335 /* SPI data transfer is enabled but spi_ker_ck is idle.
481 /* data_packet should not exceed transfer length */ in stm32h7_spi_prepare_fthlv()
716 * complete the transfer from an hardware point of view.
771 * stm32_spi_can_dma - Determine if the transfer is eligible for DMA use
774 * @transfer: pointer to spi transfer
776 * If driver has fifo and the current transfer size is greater than fifo size,
777 * use DMA. Otherwise use DMA for transfer longer than defined DMA min bytes.
781 struct spi_transfer *transfer) in stm32_spi_can_dma() argument
792 (transfer->len > dma_size) ? "true" : "false"); in stm32_spi_can_dma()
794 return (transfer->len > dma_size); in stm32_spi_can_dma()
848 * so stop the current transfer. Transfer can wait for next in stm32f4_spi_irq_event()
951 * that something went wrong, so stop the current transfer in stm32h7_spi_irq_thread()
958 dev_warn(spi->dev, "Mode fault: transfer aborted\n"); in stm32h7_spi_irq_thread()
994 * stm32_spi_prepare_msg - set up the controller to transfer a single message
1051 * DMA callback is called when the transfer is complete for DMA TX channel.
1067 * DMA callback is called when the transfer is complete for DMA RX channel.
1081 * DMA callback is called when the transfer is complete or when an error
1082 * occurs. If the transfer is complete, EOT flag is raised.
1104 * transfer bits_per_word.
1107 * @dir: direction of the dma transfer
1153 * stm32f4_spi_transfer_one_irq - transfer a single spi_transfer using
1157 * It must returns 0 if the transfer is finished or 1 if the transfer is still
1186 /* starting data transfer when buffer is loaded */ in stm32f4_spi_transfer_one_irq()
1196 * stm32h7_spi_transfer_one_irq - transfer a single spi_transfer using
1200 * It must returns 0 if the transfer is finished or 1 if the transfer is still
1216 /* Enable the interrupts relative to the end of transfer */ in stm32h7_spi_transfer_one_irq()
1224 /* Be sure to have data in fifo before starting data transfer */ in stm32h7_spi_transfer_one_irq()
1239 * transfer using DMA
1244 /* In DMA mode end of transfer is handled by DMA TX or RX callback. */ in stm32f4_spi_transfer_one_dma_start()
1260 * transfer using DMA
1265 /* Enable the interrupts relative to the end of transfer */ in stm32h7_spi_transfer_one_dma_start()
1277 * stm32_spi_transfer_one_dma - transfer a single spi_transfer using DMA
1281 * It must returns 0 if the transfer is finished or 1 if the transfer is still
1375 dev_info(spi->dev, "DMA issue: fall back to irq transfer\n"); in stm32_spi_transfer_one_dma()
1440 * stm32_spi_communication_type - return transfer communication type
1442 * @transfer: pointer to spi transfer
1445 struct spi_transfer *transfer) in stm32_spi_communication_type() argument
1454 * transfer. in stm32_spi_communication_type()
1456 if (!transfer->tx_buf) in stm32_spi_communication_type()
1461 if (!transfer->tx_buf) in stm32_spi_communication_type()
1463 else if (!transfer->rx_buf) in stm32_spi_communication_type()
1538 * @len: transfer len
1563 * stm32h7_spi_number_of_data - configure number of data at current transfer
1565 * @nb_words: transfer length (in words)
1586 * stm32_spi_transfer_one_setup - common setup to transfer a single
1591 * @transfer: pointer to spi transfer
1595 struct spi_transfer *transfer) in stm32_spi_transfer_one_setup() argument
1604 spi->cur_xferlen = transfer->len; in stm32_spi_transfer_one_setup()
1606 spi->cur_bpw = transfer->bits_per_word; in stm32_spi_transfer_one_setup()
1610 mbr = stm32_spi_prepare_mbr(spi, transfer->speed_hz, in stm32_spi_transfer_one_setup()
1618 transfer->speed_hz = spi->cur_speed; in stm32_spi_transfer_one_setup()
1621 comm_type = stm32_spi_communication_type(spi_dev, transfer); in stm32_spi_transfer_one_setup()
1629 spi->cfg->set_data_idleness(spi, transfer->len); in stm32_spi_transfer_one_setup()
1632 nb_words = transfer->len; in stm32_spi_transfer_one_setup()
1634 nb_words = DIV_ROUND_UP(transfer->len * 8, 16); in stm32_spi_transfer_one_setup()
1636 nb_words = DIV_ROUND_UP(transfer->len * 8, 32); in stm32_spi_transfer_one_setup()
1644 dev_dbg(spi->dev, "transfer communication mode set to %d\n", in stm32_spi_transfer_one_setup()
1650 dev_dbg(spi->dev, "transfer of %d bytes (%d data frames)\n", in stm32_spi_transfer_one_setup()
1662 * stm32_spi_transfer_one - transfer a single spi_transfer
1665 * @transfer: pointer to spi transfer
1667 * It must return 0 if the transfer is finished or 1 if the transfer is still
1672 struct spi_transfer *transfer) in stm32_spi_transfer_one() argument
1678 if (transfer->len == 0) in stm32_spi_transfer_one()
1681 spi->tx_buf = transfer->tx_buf; in stm32_spi_transfer_one()
1682 spi->rx_buf = transfer->rx_buf; in stm32_spi_transfer_one()
1683 spi->tx_len = spi->tx_buf ? transfer->len : 0; in stm32_spi_transfer_one()
1684 spi->rx_len = spi->rx_buf ? transfer->len : 0; in stm32_spi_transfer_one()
1687 master->can_dma(master, spi_dev, transfer)); in stm32_spi_transfer_one()
1689 ret = stm32_spi_transfer_one_setup(spi, spi_dev, transfer); in stm32_spi_transfer_one()
1691 dev_err(spi->dev, "SPI transfer setup failed\n"); in stm32_spi_transfer_one()
1696 return stm32_spi_transfer_one_dma(spi, transfer); in stm32_spi_transfer_one()