aboutsummaryrefslogtreecommitdiff
path: root/drivers/mmc
diff options
context:
space:
mode:
authorLudovic Barre <ludovic.barre@stericsson.com>2011-02-18 15:00:05 +0100
committerSebastian RASMUSSEN <sebastian.rasmussen@stericsson.com>2011-04-07 16:06:30 +0200
commit8123700cb85ac44506223688e4df0f1e174237f9 (patch)
tree0cf289c4a9cc61e49aeb3ca77d655968cc4afa63 /drivers/mmc
parentbe851980f0f3170bb73086feb170fe46b5009c6b (diff)
mmci: tasklet context, dma finalize
ST-Ericsson Linux next: N/A ST-Ericsson ID: - ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I6d2aecc11b286f04fbbd922ef3094fbeb8247890 Signed-off-by: Ludovic Barre <ludovic.barre@stericsson.com> Change-Id: I6d2aecc11b286f04fbbd922ef3094fbeb8247890 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/17181 Reviewed-by: Sebastian RASMUSSEN <sebastian.rasmussen@stericsson.com> Tested-by: Sebastian RASMUSSEN <sebastian.rasmussen@stericsson.com>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/host/mmci.c31
1 files changed, 6 insertions, 25 deletions
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
index 36d1391f891..4ea24d5e049 100644
--- a/drivers/mmc/host/mmci.c
+++ b/drivers/mmc/host/mmci.c
@@ -383,31 +383,16 @@ static int __devinit mmci_setup_dma(struct mmci_host *host)
return 0;
}
-static void mmci_dma_data_end(struct mmci_host *host)
+static void mmci_dma_abort(struct mmci_host *host)
{
- struct mmc_data *data = host->data;
-
- dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len,
- (data->flags & MMC_DATA_WRITE)
- ? DMA_TO_DEVICE : DMA_FROM_DEVICE);
- host->dma_on_current_xfer = false;
-}
-
-static void mmci_dma_terminate(struct mmci_host *host)
-{
- struct mmc_data *data = host->data;
struct dma_chan *chan;
dev_err(mmc_dev(host->mmc), "error during DMA transfer!\n");
- if (data->flags & MMC_DATA_READ)
- chan = host->dma_rx_channel;
- else
- chan = host->dma_tx_channel;
- dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len,
- (data->flags & MMC_DATA_WRITE)
- ? DMA_TO_DEVICE : DMA_FROM_DEVICE);
+
+ chan = (host->mrq->data->flags & MMC_DATA_READ) ?
+ host->dma_rx_channel : host->dma_tx_channel;
+
chan->device->device_control(chan, DMA_TERMINATE_ALL, 0);
- host->dma_on_current_xfer = false;
}
static void mmci_dma_callback(void *arg)
@@ -530,11 +515,7 @@ static inline int mmci_prepare_dma(struct mmci_host *host,
{
return -1;
}
-static inline void mmci_dma_data_end(struct mmci_host *host)
-{
-}
-
-static inline void mmci_dma_terminate(struct mmci_host *host)
+static inline void mmci_dma_abort(struct mmci_host *host)
{
}
#endif