Lines Matching refs:dma_chan
144 struct dma_chan *dma_chan[SPRD_SPI_MAX]; member
487 static int sprd_spi_dma_submit(struct dma_chan *dma_chan, in sprd_spi_dma_submit() argument
497 ret = dmaengine_slave_config(dma_chan, c); in sprd_spi_dma_submit()
503 desc = dmaengine_prep_slave_sg(dma_chan, sg->sgl, sg->nents, dir, flags); in sprd_spi_dma_submit()
511 dma_async_issue_pending(dma_chan); in sprd_spi_dma_submit()
518 struct dma_chan *dma_chan = ss->dma.dma_chan[SPRD_SPI_RX]; in sprd_spi_dma_rx_config() local
527 ret = sprd_spi_dma_submit(dma_chan, &config, &t->rx_sg, DMA_DEV_TO_MEM); in sprd_spi_dma_rx_config()
536 struct dma_chan *dma_chan = ss->dma.dma_chan[SPRD_SPI_TX]; in sprd_spi_dma_tx_config() local
545 ret = sprd_spi_dma_submit(dma_chan, &config, &t->tx_sg, DMA_MEM_TO_DEV); in sprd_spi_dma_tx_config()
554 ss->dma.dma_chan[SPRD_SPI_RX] = dma_request_chan(ss->dev, "rx_chn"); in sprd_spi_dma_request()
555 if (IS_ERR_OR_NULL(ss->dma.dma_chan[SPRD_SPI_RX])) in sprd_spi_dma_request()
556 return dev_err_probe(ss->dev, PTR_ERR(ss->dma.dma_chan[SPRD_SPI_RX]), in sprd_spi_dma_request()
559 ss->dma.dma_chan[SPRD_SPI_TX] = dma_request_chan(ss->dev, "tx_chn"); in sprd_spi_dma_request()
560 if (IS_ERR_OR_NULL(ss->dma.dma_chan[SPRD_SPI_TX])) { in sprd_spi_dma_request()
561 dma_release_channel(ss->dma.dma_chan[SPRD_SPI_RX]); in sprd_spi_dma_request()
562 return dev_err_probe(ss->dev, PTR_ERR(ss->dma.dma_chan[SPRD_SPI_TX]), in sprd_spi_dma_request()
571 if (ss->dma.dma_chan[SPRD_SPI_RX]) in sprd_spi_dma_release()
572 dma_release_channel(ss->dma.dma_chan[SPRD_SPI_RX]); in sprd_spi_dma_release()
574 if (ss->dma.dma_chan[SPRD_SPI_TX]) in sprd_spi_dma_release()
575 dma_release_channel(ss->dma.dma_chan[SPRD_SPI_TX]); in sprd_spi_dma_release()