Lines Matching refs:dmae

847 	struct mmci_dmae_priv *dmae;  in mmci_dmae_setup()  local
849 dmae = devm_kzalloc(mmc_dev(host->mmc), sizeof(*dmae), GFP_KERNEL); in mmci_dmae_setup()
850 if (!dmae) in mmci_dmae_setup()
853 host->dma_priv = dmae; in mmci_dmae_setup()
855 dmae->rx_channel = dma_request_chan(mmc_dev(host->mmc), "rx"); in mmci_dmae_setup()
856 if (IS_ERR(dmae->rx_channel)) { in mmci_dmae_setup()
857 int ret = PTR_ERR(dmae->rx_channel); in mmci_dmae_setup()
858 dmae->rx_channel = NULL; in mmci_dmae_setup()
862 dmae->tx_channel = dma_request_chan(mmc_dev(host->mmc), "tx"); in mmci_dmae_setup()
863 if (IS_ERR(dmae->tx_channel)) { in mmci_dmae_setup()
864 if (PTR_ERR(dmae->tx_channel) == -EPROBE_DEFER) in mmci_dmae_setup()
867 dmae->tx_channel = NULL; in mmci_dmae_setup()
875 if (dmae->rx_channel && !dmae->tx_channel) in mmci_dmae_setup()
876 dmae->tx_channel = dmae->rx_channel; in mmci_dmae_setup()
878 if (dmae->rx_channel) in mmci_dmae_setup()
879 rxname = dma_chan_name(dmae->rx_channel); in mmci_dmae_setup()
883 if (dmae->tx_channel) in mmci_dmae_setup()
884 txname = dma_chan_name(dmae->tx_channel); in mmci_dmae_setup()
895 if (dmae->tx_channel) { in mmci_dmae_setup()
896 struct device *dev = dmae->tx_channel->device->dev; in mmci_dmae_setup()
902 if (dmae->rx_channel) { in mmci_dmae_setup()
903 struct device *dev = dmae->rx_channel->device->dev; in mmci_dmae_setup()
910 if (!dmae->tx_channel || !dmae->rx_channel) { in mmci_dmae_setup()
924 struct mmci_dmae_priv *dmae = host->dma_priv; in mmci_dmae_release() local
926 if (dmae->rx_channel) in mmci_dmae_release()
927 dma_release_channel(dmae->rx_channel); in mmci_dmae_release()
928 if (dmae->tx_channel) in mmci_dmae_release()
929 dma_release_channel(dmae->tx_channel); in mmci_dmae_release()
930 dmae->rx_channel = dmae->tx_channel = NULL; in mmci_dmae_release()
935 struct mmci_dmae_priv *dmae = host->dma_priv; in mmci_dma_unmap() local
939 chan = dmae->rx_channel; in mmci_dma_unmap()
941 chan = dmae->tx_channel; in mmci_dma_unmap()
949 struct mmci_dmae_priv *dmae = host->dma_priv; in mmci_dmae_error() local
955 dmaengine_terminate_all(dmae->cur); in mmci_dmae_error()
957 dmae->cur = NULL; in mmci_dmae_error()
958 dmae->desc_current = NULL; in mmci_dmae_error()
966 struct mmci_dmae_priv *dmae = host->dma_priv; in mmci_dmae_finalize() local
1005 dmae->cur = NULL; in mmci_dmae_finalize()
1006 dmae->desc_current = NULL; in mmci_dmae_finalize()
1014 struct mmci_dmae_priv *dmae = host->dma_priv; in _mmci_dmae_prep_data() local
1033 chan = dmae->rx_channel; in _mmci_dmae_prep_data()
1036 chan = dmae->tx_channel; in _mmci_dmae_prep_data()
1089 struct mmci_dmae_priv *dmae = host->dma_priv; in mmci_dmae_prep_data() local
1090 struct mmci_dmae_next *nd = &dmae->next_data; in mmci_dmae_prep_data()
1098 if (dmae->cur && dmae->desc_current) in mmci_dmae_prep_data()
1102 return _mmci_dmae_prep_data(host, data, &dmae->cur, in mmci_dmae_prep_data()
1103 &dmae->desc_current); in mmci_dmae_prep_data()
1108 struct mmci_dmae_priv *dmae = host->dma_priv; in mmci_dmae_start() local
1112 ret = dma_submit_error(dmaengine_submit(dmae->desc_current)); in mmci_dmae_start()
1117 dma_async_issue_pending(dmae->cur); in mmci_dmae_start()
1126 struct mmci_dmae_priv *dmae = host->dma_priv; in mmci_dmae_get_next_data() local
1127 struct mmci_dmae_next *next = &dmae->next_data; in mmci_dmae_get_next_data()
1134 dmae->desc_current = next->desc; in mmci_dmae_get_next_data()
1135 dmae->cur = next->chan; in mmci_dmae_get_next_data()
1144 struct mmci_dmae_priv *dmae = host->dma_priv; in mmci_dmae_unprep_data() local
1152 struct mmci_dmae_next *next = &dmae->next_data; in mmci_dmae_unprep_data()
1155 chan = dmae->rx_channel; in mmci_dmae_unprep_data()
1157 chan = dmae->tx_channel; in mmci_dmae_unprep_data()
1160 if (dmae->desc_current == next->desc) in mmci_dmae_unprep_data()
1161 dmae->desc_current = NULL; in mmci_dmae_unprep_data()
1163 if (dmae->cur == next->chan) { in mmci_dmae_unprep_data()
1165 dmae->cur = NULL; in mmci_dmae_unprep_data()