Lines Matching refs:dma
6 #include <linux/dma-mapping.h>
7 #include <linux/dma/sprd-dma.h>
164 struct sprd_spi_dma dma;
518 struct dma_chan *dma_chan = ss->dma.dma_chan[SPRD_SPI_RX];
521 .src_addr_width = ss->dma.width,
522 .dst_addr_width = ss->dma.width,
523 .dst_maxburst = ss->dma.fragmens_len,
531 return ss->dma.rx_len;
536 struct dma_chan *dma_chan = ss->dma.dma_chan[SPRD_SPI_TX];
539 .src_addr_width = ss->dma.width,
540 .dst_addr_width = ss->dma.width,
541 .src_maxburst = ss->dma.fragmens_len,
554 ss->dma.dma_chan[SPRD_SPI_RX] = dma_request_chan(ss->dev, "rx_chn");
555 if (IS_ERR_OR_NULL(ss->dma.dma_chan[SPRD_SPI_RX]))
556 return dev_err_probe(ss->dev, PTR_ERR(ss->dma.dma_chan[SPRD_SPI_RX]),
559 ss->dma.dma_chan[SPRD_SPI_TX] = dma_request_chan(ss->dev, "tx_chn");
560 if (IS_ERR_OR_NULL(ss->dma.dma_chan[SPRD_SPI_TX])) {
561 dma_release_channel(ss->dma.dma_chan[SPRD_SPI_RX]);
562 return dev_err_probe(ss->dev, PTR_ERR(ss->dma.dma_chan[SPRD_SPI_TX]),
571 if (ss->dma.dma_chan[SPRD_SPI_RX])
572 dma_release_channel(ss->dma.dma_chan[SPRD_SPI_RX]);
574 if (ss->dma.dma_chan[SPRD_SPI_TX])
575 dma_release_channel(ss->dma.dma_chan[SPRD_SPI_TX]);
624 ss->dma.rx_len = t->len > ss->dma.fragmens_len ?
625 (t->len - t->len % ss->dma.fragmens_len) :
641 ret = ss->dma.rx_len;
745 ss->dma.width = DMA_SLAVE_BUSWIDTH_1_BYTE;
746 ss->dma.fragmens_len = SPRD_SPI_DMA_STEP;
752 ss->dma.width = DMA_SLAVE_BUSWIDTH_2_BYTES;
753 ss->dma.fragmens_len = SPRD_SPI_DMA_STEP << 1;
759 ss->dma.width = DMA_SLAVE_BUSWIDTH_4_BYTES;
760 ss->dma.fragmens_len = SPRD_SPI_DMA_STEP << 2;
829 if (ss->dma.rx_len < ss->len) {
830 ss->rx_buf += ss->dma.rx_len;
831 ss->dma.rx_len +=
832 ss->read_bufs(ss, ss->len - ss->dma.rx_len);
894 return ss->dma.enable && (t->len > SPRD_SPI_FIFO_SIZE);
907 "failed to request dma, enter no dma mode, ret = %d\n",
913 ss->dma.enable = true;
1016 if (ss->dma.enable)
1029 if (ss->dma.enable)
1047 if (!ss->dma.enable)