Lines Matching defs:xfer
88 // data xfer lock
120 static int sp7021_spi_slave_tx(struct spi_device *spi, struct spi_transfer *xfer)
128 writel(xfer->len, pspim->s_base + SP7021_SLAVE_DMA_LENGTH_REG);
129 writel(xfer->tx_dma, pspim->s_base + SP7021_SLAVE_DMA_ADDR_REG);
140 static int sp7021_spi_slave_rx(struct spi_device *spi, struct spi_transfer *xfer)
148 writel(xfer->len, pspim->s_base + SP7021_SLAVE_DMA_LENGTH_REG);
149 writel(xfer->rx_dma, pspim->s_base + SP7021_SLAVE_DMA_ADDR_REG);
284 static void sp7021_spi_setup_clk(struct spi_controller *ctlr, struct spi_transfer *xfer)
290 div = max(2U, clk_rate / xfer->speed_hz);
299 struct spi_transfer *xfer)
307 xfer_cnt = xfer->len / SP7021_SPI_DATA_SIZE;
308 last_len = xfer->len % SP7021_SPI_DATA_SIZE;
313 sp7021_spi_setup_clk(ctlr, xfer);
321 pspim->tx_buf = xfer->tx_buf + i * SP7021_SPI_DATA_SIZE;
322 pspim->rx_buf = xfer->rx_buf + i * SP7021_SPI_DATA_SIZE;
363 struct spi_transfer *xfer)
369 if (xfer->tx_buf && !xfer->rx_buf) {
370 xfer->tx_dma = dma_map_single(dev, (void *)xfer->tx_buf,
371 xfer->len, DMA_TO_DEVICE);
372 if (dma_mapping_error(dev, xfer->tx_dma))
374 ret = sp7021_spi_slave_tx(spi, xfer);
375 dma_unmap_single(dev, xfer->tx_dma, xfer->len, DMA_TO_DEVICE);
376 } else if (xfer->rx_buf && !xfer->tx_buf) {
377 xfer->rx_dma = dma_map_single(dev, xfer->rx_buf, xfer->len,
379 if (dma_mapping_error(dev, xfer->rx_dma))
381 ret = sp7021_spi_slave_rx(spi, xfer);
382 dma_unmap_single(dev, xfer->rx_dma, xfer->len, DMA_FROM_DEVICE);