Lines Matching refs:dma

6 #include <linux/dma-mapping.h>
7 #include <linux/dma/sprd-dma.h>
165 struct sprd_spi_dma dma;
519 struct dma_chan *dma_chan = ss->dma.dma_chan[SPRD_SPI_RX];
522 .src_addr_width = ss->dma.width,
523 .dst_addr_width = ss->dma.width,
524 .dst_maxburst = ss->dma.fragmens_len,
532 return ss->dma.rx_len;
537 struct dma_chan *dma_chan = ss->dma.dma_chan[SPRD_SPI_TX];
540 .src_addr_width = ss->dma.width,
541 .dst_addr_width = ss->dma.width,
542 .src_maxburst = ss->dma.fragmens_len,
555 ss->dma.dma_chan[SPRD_SPI_RX] = dma_request_chan(ss->dev, "rx_chn");
556 if (IS_ERR_OR_NULL(ss->dma.dma_chan[SPRD_SPI_RX]))
557 return dev_err_probe(ss->dev, PTR_ERR(ss->dma.dma_chan[SPRD_SPI_RX]),
560 ss->dma.dma_chan[SPRD_SPI_TX] = dma_request_chan(ss->dev, "tx_chn");
561 if (IS_ERR_OR_NULL(ss->dma.dma_chan[SPRD_SPI_TX])) {
562 dma_release_channel(ss->dma.dma_chan[SPRD_SPI_RX]);
563 return dev_err_probe(ss->dev, PTR_ERR(ss->dma.dma_chan[SPRD_SPI_TX]),
572 if (ss->dma.dma_chan[SPRD_SPI_RX])
573 dma_release_channel(ss->dma.dma_chan[SPRD_SPI_RX]);
575 if (ss->dma.dma_chan[SPRD_SPI_TX])
576 dma_release_channel(ss->dma.dma_chan[SPRD_SPI_TX]);
625 ss->dma.rx_len = t->len > ss->dma.fragmens_len ?
626 (t->len - t->len % ss->dma.fragmens_len) :
642 ret = ss->dma.rx_len;
746 ss->dma.width = DMA_SLAVE_BUSWIDTH_1_BYTE;
747 ss->dma.fragmens_len = SPRD_SPI_DMA_STEP;
753 ss->dma.width = DMA_SLAVE_BUSWIDTH_2_BYTES;
754 ss->dma.fragmens_len = SPRD_SPI_DMA_STEP << 1;
760 ss->dma.width = DMA_SLAVE_BUSWIDTH_4_BYTES;
761 ss->dma.fragmens_len = SPRD_SPI_DMA_STEP << 2;
830 if (ss->dma.rx_len < ss->len) {
831 ss->rx_buf += ss->dma.rx_len;
832 ss->dma.rx_len +=
833 ss->read_bufs(ss, ss->len - ss->dma.rx_len);
895 return ss->dma.enable && (t->len > SPRD_SPI_FIFO_SIZE);
908 "failed to request dma, enter no dma mode, ret = %d\n",
914 ss->dma.enable = true;
1020 if (ss->dma.enable)
1034 if (ss->dma.enable)
1052 if (!ss->dma.enable)