Lines Matching refs:xfer

164 				       struct spi_transfer *xfer)  in mtk_spi_slave_fifo_transfer()  argument
172 if (xfer->rx_buf) in mtk_spi_slave_fifo_transfer()
174 if (xfer->tx_buf) in mtk_spi_slave_fifo_transfer()
178 cnt = xfer->len / 4; in mtk_spi_slave_fifo_transfer()
179 if (xfer->tx_buf) in mtk_spi_slave_fifo_transfer()
181 xfer->tx_buf, cnt); in mtk_spi_slave_fifo_transfer()
183 remainder = xfer->len % 4; in mtk_spi_slave_fifo_transfer()
184 if (xfer->tx_buf && remainder > 0) { in mtk_spi_slave_fifo_transfer()
186 memcpy(&reg_val, xfer->tx_buf + cnt * 4, remainder); in mtk_spi_slave_fifo_transfer()
201 struct spi_transfer *xfer) in mtk_spi_slave_dma_transfer() argument
209 if (xfer->tx_buf) { in mtk_spi_slave_dma_transfer()
213 void *nonconst_tx = (void *)xfer->tx_buf; in mtk_spi_slave_dma_transfer()
215 xfer->tx_dma = dma_map_single(dev, nonconst_tx, in mtk_spi_slave_dma_transfer()
216 xfer->len, DMA_TO_DEVICE); in mtk_spi_slave_dma_transfer()
217 if (dma_mapping_error(dev, xfer->tx_dma)) { in mtk_spi_slave_dma_transfer()
223 if (xfer->rx_buf) { in mtk_spi_slave_dma_transfer()
224 xfer->rx_dma = dma_map_single(dev, xfer->rx_buf, in mtk_spi_slave_dma_transfer()
225 xfer->len, DMA_FROM_DEVICE); in mtk_spi_slave_dma_transfer()
226 if (dma_mapping_error(dev, xfer->rx_dma)) { in mtk_spi_slave_dma_transfer()
232 writel(xfer->tx_dma, mdata->base + SPIS_TX_SRC_REG); in mtk_spi_slave_dma_transfer()
233 writel(xfer->rx_dma, mdata->base + SPIS_RX_DST_REG); in mtk_spi_slave_dma_transfer()
239 if (xfer->tx_buf) in mtk_spi_slave_dma_transfer()
241 if (xfer->rx_buf) in mtk_spi_slave_dma_transfer()
247 reg_val |= (xfer->len - 1) & TX_DMA_LEN; in mtk_spi_slave_dma_transfer()
251 if (xfer->tx_buf) in mtk_spi_slave_dma_transfer()
253 if (xfer->rx_buf) in mtk_spi_slave_dma_transfer()
265 if (xfer->rx_buf) in mtk_spi_slave_dma_transfer()
266 dma_unmap_single(dev, xfer->rx_dma, in mtk_spi_slave_dma_transfer()
267 xfer->len, DMA_FROM_DEVICE); in mtk_spi_slave_dma_transfer()
270 if (xfer->tx_buf) in mtk_spi_slave_dma_transfer()
271 dma_unmap_single(dev, xfer->tx_dma, in mtk_spi_slave_dma_transfer()
272 xfer->len, DMA_TO_DEVICE); in mtk_spi_slave_dma_transfer()
284 struct spi_transfer *xfer) in mtk_spi_slave_transfer_one() argument
290 mdata->cur_transfer = xfer; in mtk_spi_slave_transfer_one()
292 if (xfer->len > mdata->dev_comp->max_fifo_size) in mtk_spi_slave_transfer_one()
293 return mtk_spi_slave_dma_transfer(ctlr, spi, xfer); in mtk_spi_slave_transfer_one()
295 return mtk_spi_slave_fifo_transfer(ctlr, spi, xfer); in mtk_spi_slave_transfer_one()