summaryrefslogtreecommitdiffstats
path: root/drivers/mmc/host/mmci.h
diff options
context:
space:
mode:
authorLudovic Barre <ludovic.barre@st.com>2018-10-08 14:08:33 +0200
committerUlf Hansson <ulf.hansson@linaro.org>2018-10-09 09:13:03 +0200
commitc3647fdc6a5a48699a1248a7f3d9a0429369e939 (patch)
tree991fad512b5c4613290f3dc9b1feaa4ef94130c2 /drivers/mmc/host/mmci.h
parentf0061fed1f8a9f86ddec303a3f94742a71b20cb7 (diff)
downloadlinux-c3647fdc6a5a48699a1248a7f3d9a0429369e939.tar.bz2
mmc: mmci: create common mmci_dma_setup/release
This patch creates a common mmci_dma_setup/release which calls dma_setup/release callbacks of mmci_host_ops and manages common features like use_dma... If there is a fallbacks to pio mode, dma functions must check use_dma. error management: -mmci_dmae_setup fail if Tx and Rx dma channels are not defined -qcom_dma_setup fail if one of both dma channels is not defined, Qcom has no specific resource to release, just mmci dmae resource. Signed-off-by: Ludovic Barre <ludovic.barre@st.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc/host/mmci.h')
-rw-r--r--drivers/mmc/host/mmci.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/mmc/host/mmci.h b/drivers/mmc/host/mmci.h
index 01e6c6bb5e83..34bb5e6a738b 100644
--- a/drivers/mmc/host/mmci.h
+++ b/drivers/mmc/host/mmci.h
@@ -273,7 +273,8 @@ struct variant_data {
/* mmci variant callbacks */
struct mmci_host_ops {
- void (*dma_setup)(struct mmci_host *host);
+ int (*dma_setup)(struct mmci_host *host);
+ void (*dma_release)(struct mmci_host *host);
};
struct mmci_host_next {
@@ -323,6 +324,7 @@ struct mmci_host {
unsigned int size;
int (*get_rx_fifocnt)(struct mmci_host *h, u32 status, int remain);
+ u8 use_dma:1;
#ifdef CONFIG_DMA_ENGINE
/* DMA stuff */
struct dma_chan *dma_current;
@@ -336,3 +338,6 @@ struct mmci_host {
#endif
};
+int mmci_dmae_setup(struct mmci_host *host);
+void mmci_dmae_release(struct mmci_host *host);
+