Lines Matching refs:dmae

739 	struct mmci_dmae_priv *dmae;
741 dmae = devm_kzalloc(mmc_dev(host->mmc), sizeof(*dmae), GFP_KERNEL);
742 if (!dmae)
745 host->dma_priv = dmae;
747 dmae->rx_channel = dma_request_chan(mmc_dev(host->mmc), "rx");
748 if (IS_ERR(dmae->rx_channel)) {
749 int ret = PTR_ERR(dmae->rx_channel);
750 dmae->rx_channel = NULL;
754 dmae->tx_channel = dma_request_chan(mmc_dev(host->mmc), "tx");
755 if (IS_ERR(dmae->tx_channel)) {
756 if (PTR_ERR(dmae->tx_channel) == -EPROBE_DEFER)
759 dmae->tx_channel = NULL;
767 if (dmae->rx_channel && !dmae->tx_channel)
768 dmae->tx_channel = dmae->rx_channel;
770 if (dmae->rx_channel)
771 rxname = dma_chan_name(dmae->rx_channel);
775 if (dmae->tx_channel)
776 txname = dma_chan_name(dmae->tx_channel);
787 if (dmae->tx_channel) {
788 struct device *dev = dmae->tx_channel->device->dev;
794 if (dmae->rx_channel) {
795 struct device *dev = dmae->rx_channel->device->dev;
802 if (!dmae->tx_channel || !dmae->rx_channel) {
816 struct mmci_dmae_priv *dmae = host->dma_priv;
818 if (dmae->rx_channel)
819 dma_release_channel(dmae->rx_channel);
820 if (dmae->tx_channel)
821 dma_release_channel(dmae->tx_channel);
822 dmae->rx_channel = dmae->tx_channel = NULL;
827 struct mmci_dmae_priv *dmae = host->dma_priv;
831 chan = dmae->rx_channel;
833 chan = dmae->tx_channel;
841 struct mmci_dmae_priv *dmae = host->dma_priv;
847 dmaengine_terminate_all(dmae->cur);
849 dmae->cur = NULL;
850 dmae->desc_current = NULL;
858 struct mmci_dmae_priv *dmae = host->dma_priv;
897 dmae->cur = NULL;
898 dmae->desc_current = NULL;
906 struct mmci_dmae_priv *dmae = host->dma_priv;
925 chan = dmae->rx_channel;
928 chan = dmae->tx_channel;
981 struct mmci_dmae_priv *dmae = host->dma_priv;
982 struct mmci_dmae_next *nd = &dmae->next_data;
990 if (dmae->cur && dmae->desc_current)
994 return _mmci_dmae_prep_data(host, data, &dmae->cur,
995 &dmae->desc_current);
1000 struct mmci_dmae_priv *dmae = host->dma_priv;
1004 ret = dma_submit_error(dmaengine_submit(dmae->desc_current));
1009 dma_async_issue_pending(dmae->cur);
1018 struct mmci_dmae_priv *dmae = host->dma_priv;
1019 struct mmci_dmae_next *next = &dmae->next_data;
1026 dmae->desc_current = next->desc;
1027 dmae->cur = next->chan;
1036 struct mmci_dmae_priv *dmae = host->dma_priv;
1044 struct mmci_dmae_next *next = &dmae->next_data;
1047 chan = dmae->rx_channel;
1049 chan = dmae->tx_channel;
1052 if (dmae->desc_current == next->desc)
1053 dmae->desc_current = NULL;
1055 if (dmae->cur == next->chan) {
1057 dmae->cur = NULL;