diff options
author | Per Forlin <per.forlin@linaro.org> | 2011-07-01 16:55:24 (GMT) |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2011-07-20 21:21:11 (GMT) |
commit | 58c7ccbf9109abcc6b7ed2f76c21ebee244d31a8 (patch) | |
tree | 967a7f70d04bbe02e1999f48c66234b3b37dfc91 /drivers/mmc/host/mmci.h | |
parent | 9782aff8df7e32e7745cc484f34ec471d9251651 (diff) | |
download | linux-58c7ccbf9109abcc6b7ed2f76c21ebee244d31a8.tar.xz |
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.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/mmc/host/mmci.h b/drivers/mmc/host/mmci.h index 2164e8c..79e4143 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 |