Lines Matching refs:tfr

88  * @tfr: SPI transfer currently processed
122 struct spi_transfer *tfr;
408 struct spi_transfer *tfr,
438 * @tfr: SPI transfer
482 struct spi_transfer *tfr,
488 bs->tfr = tfr;
493 if (bs->tx_buf && !sg_is_last(&tfr->tx_sg.sgl[0]))
494 bs->tx_prologue = sg_dma_len(&tfr->tx_sg.sgl[0]) & 3;
496 if (bs->rx_buf && !sg_is_last(&tfr->rx_sg.sgl[0])) {
497 bs->rx_prologue = sg_dma_len(&tfr->rx_sg.sgl[0]) & 3;
500 if (!bs->tx_buf || sg_is_last(&tfr->tx_sg.sgl[0])) {
505 !(sg_dma_len(&tfr->tx_sg.sgl[0]) & ~3);
527 sg_dma_address(&tfr->rx_sg.sgl[0]),
530 sg_dma_address(&tfr->rx_sg.sgl[0]) += bs->rx_prologue;
531 sg_dma_len(&tfr->rx_sg.sgl[0]) -= bs->rx_prologue;
553 sg_dma_address(&tfr->tx_sg.sgl[0]) += bs->tx_prologue;
554 sg_dma_len(&tfr->tx_sg.sgl[0]) -= bs->tx_prologue;
556 sg_dma_len(&tfr->tx_sg.sgl[0]) = 0;
557 sg_dma_address(&tfr->tx_sg.sgl[1]) += 4;
558 sg_dma_len(&tfr->tx_sg.sgl[1]) -= 4;
572 struct spi_transfer *tfr = bs->tfr;
578 sg_dma_address(&tfr->rx_sg.sgl[0]) -= bs->rx_prologue;
579 sg_dma_len(&tfr->rx_sg.sgl[0]) += bs->rx_prologue;
586 sg_dma_address(&tfr->tx_sg.sgl[0]) -= bs->tx_prologue;
587 sg_dma_len(&tfr->tx_sg.sgl[0]) += bs->tx_prologue;
589 sg_dma_len(&tfr->tx_sg.sgl[0]) = bs->tx_prologue - 4;
590 sg_dma_address(&tfr->tx_sg.sgl[1]) -= 4;
591 sg_dma_len(&tfr->tx_sg.sgl[1]) += 4;
659 * @tfr: SPI transfer
664 * Prepare and submit a DMA descriptor for the TX or RX sglist of @tfr.
668 struct spi_transfer *tfr,
685 nents = tfr->tx_sg.nents;
686 sgl = tfr->tx_sg.sgl;
687 flags = tfr->rx_buf ? 0 : DMA_PREP_INTERRUPT;
691 nents = tfr->rx_sg.nents;
692 sgl = tfr->rx_sg.sgl;
707 } else if (!tfr->rx_buf) {
722 * @tfr: SPI transfer
767 struct spi_transfer *tfr,
782 bcm2835_spi_transfer_prologue(ctlr, tfr, bs, cs);
786 ret = bcm2835_spi_prepare_sg(ctlr, tfr, bs, target, true);
812 ret = bcm2835_spi_prepare_sg(ctlr, tfr, bs, target, false);
850 struct spi_transfer *tfr)
853 if (tfr->len < BCM2835_SPI_DMA_MIN_LENGTH)
995 struct spi_transfer *tfr,
1038 tfr, cs, false);
1050 struct spi_transfer *tfr)
1059 spi_hz = tfr->speed_hz;
1073 tfr->effective_speed_hz = cdiv ? (bs->clk_hz / cdiv) : (bs->clk_hz / 65536);
1077 if (spi->mode & SPI_3WIRE && tfr->rx_buf)
1081 bs->tx_buf = tfr->tx_buf;
1082 bs->rx_buf = tfr->rx_buf;
1083 bs->tx_len = tfr->len;
1084 bs->rx_len = tfr->len;
1093 byte_limit = hz_per_byte ? tfr->effective_speed_hz / hz_per_byte : 1;
1096 if (tfr->len < byte_limit)
1097 return bcm2835_spi_transfer_one_poll(ctlr, spi, tfr, cs);
1103 if (ctlr->can_dma && bcm2835_spi_can_dma(ctlr, spi, tfr))
1104 return bcm2835_spi_transfer_one_dma(ctlr, tfr, target, cs);
1107 return bcm2835_spi_transfer_one_irq(ctlr, spi, tfr, cs, true);