Lines Matching refs:dma_chan
145 struct dma_chan *dma_chan[SPRD_SPI_MAX]; member
488 static int sprd_spi_dma_submit(struct dma_chan *dma_chan, in sprd_spi_dma_submit() argument
498 ret = dmaengine_slave_config(dma_chan, c); in sprd_spi_dma_submit()
504 desc = dmaengine_prep_slave_sg(dma_chan, sg->sgl, sg->nents, dir, flags); in sprd_spi_dma_submit()
512 dma_async_issue_pending(dma_chan); in sprd_spi_dma_submit()
519 struct dma_chan *dma_chan = ss->dma.dma_chan[SPRD_SPI_RX]; in sprd_spi_dma_rx_config() local
528 ret = sprd_spi_dma_submit(dma_chan, &config, &t->rx_sg, DMA_DEV_TO_MEM); in sprd_spi_dma_rx_config()
537 struct dma_chan *dma_chan = ss->dma.dma_chan[SPRD_SPI_TX]; in sprd_spi_dma_tx_config() local
546 ret = sprd_spi_dma_submit(dma_chan, &config, &t->tx_sg, DMA_MEM_TO_DEV); in sprd_spi_dma_tx_config()
555 ss->dma.dma_chan[SPRD_SPI_RX] = dma_request_chan(ss->dev, "rx_chn"); in sprd_spi_dma_request()
556 if (IS_ERR_OR_NULL(ss->dma.dma_chan[SPRD_SPI_RX])) { in sprd_spi_dma_request()
557 if (PTR_ERR(ss->dma.dma_chan[SPRD_SPI_RX]) == -EPROBE_DEFER) in sprd_spi_dma_request()
558 return PTR_ERR(ss->dma.dma_chan[SPRD_SPI_RX]); in sprd_spi_dma_request()
561 return PTR_ERR(ss->dma.dma_chan[SPRD_SPI_RX]); in sprd_spi_dma_request()
564 ss->dma.dma_chan[SPRD_SPI_TX] = dma_request_chan(ss->dev, "tx_chn"); in sprd_spi_dma_request()
565 if (IS_ERR_OR_NULL(ss->dma.dma_chan[SPRD_SPI_TX])) { in sprd_spi_dma_request()
566 if (PTR_ERR(ss->dma.dma_chan[SPRD_SPI_TX]) == -EPROBE_DEFER) in sprd_spi_dma_request()
567 return PTR_ERR(ss->dma.dma_chan[SPRD_SPI_TX]); in sprd_spi_dma_request()
570 dma_release_channel(ss->dma.dma_chan[SPRD_SPI_RX]); in sprd_spi_dma_request()
571 return PTR_ERR(ss->dma.dma_chan[SPRD_SPI_TX]); in sprd_spi_dma_request()
579 if (ss->dma.dma_chan[SPRD_SPI_RX]) in sprd_spi_dma_release()
580 dma_release_channel(ss->dma.dma_chan[SPRD_SPI_RX]); in sprd_spi_dma_release()
582 if (ss->dma.dma_chan[SPRD_SPI_TX]) in sprd_spi_dma_release()
583 dma_release_channel(ss->dma.dma_chan[SPRD_SPI_TX]); in sprd_spi_dma_release()