Lines Matching defs:tfr

89  * @tfr: SPI transfer currently processed
130 struct spi_transfer *tfr;
399 struct spi_transfer *tfr,
429 * @tfr: SPI transfer
473 struct spi_transfer *tfr,
479 bs->tfr = tfr;
484 if (bs->tx_buf && !sg_is_last(&tfr->tx_sg.sgl[0]))
485 bs->tx_prologue = sg_dma_len(&tfr->tx_sg.sgl[0]) & 3;
487 if (bs->rx_buf && !sg_is_last(&tfr->rx_sg.sgl[0])) {
488 bs->rx_prologue = sg_dma_len(&tfr->rx_sg.sgl[0]) & 3;
491 if (!bs->tx_buf || sg_is_last(&tfr->tx_sg.sgl[0])) {
496 !(sg_dma_len(&tfr->tx_sg.sgl[0]) & ~3);
518 sg_dma_address(&tfr->rx_sg.sgl[0]),
521 sg_dma_address(&tfr->rx_sg.sgl[0]) += bs->rx_prologue;
522 sg_dma_len(&tfr->rx_sg.sgl[0]) -= bs->rx_prologue;
544 sg_dma_address(&tfr->tx_sg.sgl[0]) += bs->tx_prologue;
545 sg_dma_len(&tfr->tx_sg.sgl[0]) -= bs->tx_prologue;
547 sg_dma_len(&tfr->tx_sg.sgl[0]) = 0;
548 sg_dma_address(&tfr->tx_sg.sgl[1]) += 4;
549 sg_dma_len(&tfr->tx_sg.sgl[1]) -= 4;
563 struct spi_transfer *tfr = bs->tfr;
569 sg_dma_address(&tfr->rx_sg.sgl[0]) -= bs->rx_prologue;
570 sg_dma_len(&tfr->rx_sg.sgl[0]) += bs->rx_prologue;
577 sg_dma_address(&tfr->tx_sg.sgl[0]) -= bs->tx_prologue;
578 sg_dma_len(&tfr->tx_sg.sgl[0]) += bs->tx_prologue;
580 sg_dma_len(&tfr->tx_sg.sgl[0]) = bs->tx_prologue - 4;
581 sg_dma_address(&tfr->tx_sg.sgl[1]) -= 4;
582 sg_dma_len(&tfr->tx_sg.sgl[1]) += 4;
652 * @tfr: SPI transfer
656 * Prepare and submit a DMA descriptor for the TX or RX sglist of @tfr.
661 struct spi_transfer *tfr,
677 nents = tfr->tx_sg.nents;
678 sgl = tfr->tx_sg.sgl;
679 flags = tfr->rx_buf ? 0 : DMA_PREP_INTERRUPT;
683 nents = tfr->rx_sg.nents;
684 sgl = tfr->rx_sg.sgl;
699 } else if (!tfr->rx_buf) {
715 * @tfr: SPI transfer
760 struct spi_transfer *tfr,
774 bcm2835_spi_transfer_prologue(ctlr, tfr, bs, cs);
778 ret = bcm2835_spi_prepare_sg(ctlr, spi, tfr, bs, true);
804 ret = bcm2835_spi_prepare_sg(ctlr, spi, tfr, bs, false);
842 struct spi_transfer *tfr)
845 if (tfr->len < BCM2835_SPI_DMA_MIN_LENGTH)
1029 struct spi_transfer *tfr,
1072 tfr, cs, false);
1084 struct spi_transfer *tfr)
1092 spi_hz = tfr->speed_hz;
1106 tfr->effective_speed_hz = cdiv ? (bs->clk_hz / cdiv) : (bs->clk_hz / 65536);
1110 if (spi->mode & SPI_3WIRE && tfr->rx_buf)
1114 bs->tx_buf = tfr->tx_buf;
1115 bs->rx_buf = tfr->rx_buf;
1116 bs->tx_len = tfr->len;
1117 bs->rx_len = tfr->len;
1126 byte_limit = hz_per_byte ? tfr->effective_speed_hz / hz_per_byte : 1;
1129 if (tfr->len < byte_limit)
1130 return bcm2835_spi_transfer_one_poll(ctlr, spi, tfr, cs);
1136 if (ctlr->can_dma && bcm2835_spi_can_dma(ctlr, spi, tfr))
1137 return bcm2835_spi_transfer_one_dma(ctlr, spi, tfr, cs);
1140 return bcm2835_spi_transfer_one_irq(ctlr, spi, tfr, cs, true);