Lines Matching refs:dmae

842 	struct mmci_dmae_priv *dmae;
844 dmae = devm_kzalloc(mmc_dev(host->mmc), sizeof(*dmae), GFP_KERNEL);
845 if (!dmae)
848 host->dma_priv = dmae;
850 dmae->rx_channel = dma_request_chan(mmc_dev(host->mmc), "rx");
851 if (IS_ERR(dmae->rx_channel)) {
852 int ret = PTR_ERR(dmae->rx_channel);
853 dmae->rx_channel = NULL;
857 dmae->tx_channel = dma_request_chan(mmc_dev(host->mmc), "tx");
858 if (IS_ERR(dmae->tx_channel)) {
859 if (PTR_ERR(dmae->tx_channel) == -EPROBE_DEFER)
862 dmae->tx_channel = NULL;
870 if (dmae->rx_channel && !dmae->tx_channel)
871 dmae->tx_channel = dmae->rx_channel;
873 if (dmae->rx_channel)
874 rxname = dma_chan_name(dmae->rx_channel);
878 if (dmae->tx_channel)
879 txname = dma_chan_name(dmae->tx_channel);
890 if (dmae->tx_channel) {
891 struct device *dev = dmae->tx_channel->device->dev;
897 if (dmae->rx_channel) {
898 struct device *dev = dmae->rx_channel->device->dev;
905 if (!dmae->tx_channel || !dmae->rx_channel) {
919 struct mmci_dmae_priv *dmae = host->dma_priv;
921 if (dmae->rx_channel)
922 dma_release_channel(dmae->rx_channel);
923 if (dmae->tx_channel)
924 dma_release_channel(dmae->tx_channel);
925 dmae->rx_channel = dmae->tx_channel = NULL;
930 struct mmci_dmae_priv *dmae = host->dma_priv;
934 chan = dmae->rx_channel;
936 chan = dmae->tx_channel;
944 struct mmci_dmae_priv *dmae = host->dma_priv;
950 dmaengine_terminate_all(dmae->cur);
952 dmae->cur = NULL;
953 dmae->desc_current = NULL;
961 struct mmci_dmae_priv *dmae = host->dma_priv;
1000 dmae->cur = NULL;
1001 dmae->desc_current = NULL;
1009 struct mmci_dmae_priv *dmae = host->dma_priv;
1028 chan = dmae->rx_channel;
1031 chan = dmae->tx_channel;
1084 struct mmci_dmae_priv *dmae = host->dma_priv;
1085 struct mmci_dmae_next *nd = &dmae->next_data;
1093 if (dmae->cur && dmae->desc_current)
1097 return _mmci_dmae_prep_data(host, data, &dmae->cur,
1098 &dmae->desc_current);
1103 struct mmci_dmae_priv *dmae = host->dma_priv;
1107 ret = dma_submit_error(dmaengine_submit(dmae->desc_current));
1112 dma_async_issue_pending(dmae->cur);
1121 struct mmci_dmae_priv *dmae = host->dma_priv;
1122 struct mmci_dmae_next *next = &dmae->next_data;
1129 dmae->desc_current = next->desc;
1130 dmae->cur = next->chan;
1139 struct mmci_dmae_priv *dmae = host->dma_priv;
1147 struct mmci_dmae_next *next = &dmae->next_data;
1150 chan = dmae->rx_channel;
1152 chan = dmae->tx_channel;
1155 if (dmae->desc_current == next->desc)
1156 dmae->desc_current = NULL;
1158 if (dmae->cur == next->chan) {
1160 dmae->cur = NULL;