summaryrefslogtreecommitdiffstats
path: root/drivers/mmc/host/mmci.h
diff options
context:
space:
mode:
authorPer Forlin <per.forlin@linaro.org>2011-07-01 18:55:24 +0200
committerChris Ball <cjb@laptop.org>2011-07-20 23:21:11 +0200
commit58c7ccbf9109abcc6b7ed2f76c21ebee244d31a8 (patch)
tree967a7f70d04bbe02e1999f48c66234b3b37dfc91 /drivers/mmc/host/mmci.h
parentmmc: omap_hsmmc: add support for pre_req and post_req (diff)
downloadlinux-58c7ccbf9109abcc6b7ed2f76c21ebee244d31a8.tar.xz
linux-58c7ccbf9109abcc6b7ed2f76c21ebee244d31a8.zip
mmc: mmci: implement pre_req() and post_req()
pre_req() runs dma_map_sg() and prepares the dma descriptor for the next mmc data transfer. post_req() runs dma_unmap_sg. If not calling pre_req() before mmci_request(), mmci_request() will prepare the cache and dma just like it did it before. It is optional to use pre_req() and post_req() for mmci. Signed-off-by: Per Forlin <per.forlin@linaro.org> Tested-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'drivers/mmc/host/mmci.h')
-rw-r--r--drivers/mmc/host/mmci.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/mmc/host/mmci.h b/drivers/mmc/host/mmci.h
index 2164e8c6476c..79e4143ab9df 100644
--- a/drivers/mmc/host/mmci.h
+++ b/drivers/mmc/host/mmci.h
@@ -166,6 +166,12 @@ struct clk;
struct variant_data;
struct dma_chan;
+struct mmci_host_next {
+ struct dma_async_tx_descriptor *dma_desc;
+ struct dma_chan *dma_chan;
+ s32 cookie;
+};
+
struct mmci_host {
phys_addr_t phybase;
void __iomem *base;
@@ -203,6 +209,8 @@ struct mmci_host {
struct dma_chan *dma_current;
struct dma_chan *dma_rx_channel;
struct dma_chan *dma_tx_channel;
+ struct dma_async_tx_descriptor *dma_desc_current;
+ struct mmci_host_next next_data;
#define dma_inprogress(host) ((host)->dma_current)
#else